查看: 3720|回复: 14

RAC 下 为了减少I/O的SQL优化

[复制链接]
认证徽章
论坛徽章:
9
ITPUB社区OCM联盟徽章
日期:2013-03-27 11:17:11奥运纪念徽章
日期:2013-06-18 09:13:52ITPUB社区千里马徽章
日期:2013-08-22 09:58:03大众
日期:2013-08-30 14:51:33路虎
日期:2013-12-01 18:25:42
发表于 2011-4-29 12:59 | 显示全部楼层 |阅读模式
最近进行了一个RAC系统的诊断和SQL调优
系统负载如下:
DB Name DB Id Instance Inst num Release RAC Host
CISLIVE 2822924692 cislive1 1 10.2.0.5.0 YES cisdb01


Snap Id Snap Time Sessions Cursors/Session
Begin Snap: 5890 27-Apr-11 14:00:49 295 2.3
End Snap: 5891 27-Apr-11 14:58:30 298 2.6
Elapsed:   57.68 (mins)     
DB Time:   37.97 (mins)     

负载不是太高,我主要是为了防范未然

Load Profile

Per Second Per Transaction
Redo size: 17,555.69 33,054.70
Logical reads: 135,918.63  255,914.07
Block changes: 87.13  164.05
Physical reads: 62.17  117.05
可以看到逻辑读叫高,查看TOP5
Top 5 Timed Events

Event Waits Time(s) Avg Wait(ms) % Total Call Time Wait Class
CPU time   2,192   96.2   
db file sequential read 6,277 32 5 1.4 User I/O
gc cr multi block request 148,225 19 0 .8 Cluster
db file scattered read 12,595 8 1 .4 User I/O
gc buffer busy 3,385 5 2 .2 Cluster

可以看到视乎有块在RAC间传递,CPU TIME的解释ORACLE说是CPU耗用在数据库操作上的时间。
因为我这个系统是偶尔CPU下降到50%,等待时间也是偶尔出现GC CR REQUEST的情况,并没有
达到不因为高负载宕机的地步。只是防范性调优,所以负载不是很高。

分析SQL ORDER BY CPU前2位
53 53 5 10.55 2.41 2.33 ccdfj27szj143    SELECT * FROM ( Select RowNum ...
52 52 5 10.39 2.37 2.26 bh0shnmvqduzu    SELECT COUNT(*) FROM PrpTmain

[ 本帖最后由 gaopengtttt 于 2011-6-30 10:11 编辑 ]
认证徽章
论坛徽章:
9
ITPUB社区OCM联盟徽章
日期:2013-03-27 11:17:11奥运纪念徽章
日期:2013-06-18 09:13:52ITPUB社区千里马徽章
日期:2013-08-22 09:58:03大众
日期:2013-08-30 14:51:33路虎
日期:2013-12-01 18:25:42
发表于 2011-4-29 13:00 | 显示全部楼层
不让泄露结构。。。

改掉

[ 本帖最后由 gaopengtttt 于 2011-6-30 10:11 编辑 ]

使用道具 举报

回复
认证徽章
论坛徽章:
9
ITPUB社区OCM联盟徽章
日期:2013-03-27 11:17:11奥运纪念徽章
日期:2013-06-18 09:13:52ITPUB社区千里马徽章
日期:2013-08-22 09:58:03大众
日期:2013-08-30 14:51:33路虎
日期:2013-12-01 18:25:42
发表于 2011-4-29 13:02 | 显示全部楼层
开发使用了内联子查询,内联子查询会根据条件把外层表的每条数据到内层表进行一次匹配,如果是全表扫描就要进行这样多行的全表扫描,有点像NEST LOOP,所以这里
start才会是181K,所以重点落到如何改写内联子查询。
我如下改写

不让泄露语句,呵呵

以前语句13秒,现在语句2秒。

[ 本帖最后由 gaopengtttt 于 2011-6-30 10:33 编辑 ]

使用道具 举报

回复
认证徽章
论坛徽章:
9
ITPUB社区OCM联盟徽章
日期:2013-03-27 11:17:11奥运纪念徽章
日期:2013-06-18 09:13:52ITPUB社区千里马徽章
日期:2013-08-22 09:58:03大众
日期:2013-08-30 14:51:33路虎
日期:2013-12-01 18:25:42
发表于 2011-4-29 13:06 | 显示全部楼层
无语

[ 本帖最后由 gaopengtttt 于 2011-6-30 10:33 编辑 ]

使用道具 举报

回复
论坛徽章:
51
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22铁扇公主
日期:2012-02-21 15:03:13最佳人气徽章
日期:2012-03-13 17:39:18ITPUB季度 技术新星
日期:2012-05-22 15:10:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:13:332013年新春福章
日期:2013-02-25 14:51:24ITPUB社区12周年站庆徽章
日期:2013-08-12 09:34:36itpub13周年纪念徽章
日期:2014-09-28 10:55:55
发表于 2011-4-29 13:25 | 显示全部楼层
(SELECT DISTINCT ProposalNo FROM PrpTinsured where RiskCode = '0000') p,
(SELECT DISTINCT ProposalNo FROM PrpTinsured WHERE RiskCode = '0000') c

这个表名写错了把?
如果把这个换成union会不会更快点?

使用道具 举报

回复
论坛徽章:
51
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22铁扇公主
日期:2012-02-21 15:03:13最佳人气徽章
日期:2012-03-13 17:39:18ITPUB季度 技术新星
日期:2012-05-22 15:10:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:13:332013年新春福章
日期:2013-02-25 14:51:24ITPUB社区12周年站庆徽章
日期:2013-08-12 09:34:36itpub13周年纪念徽章
日期:2014-09-28 10:55:55
发表于 2011-4-29 13:28 | 显示全部楼层
(RiskCode = '0000' and AppliName = 'test1' and InputDate <= sysdate)
   AND (1 = 0 OR SUBSTR(OthFlag, 4, 1) = '0')

这个好像也是重复的,你最上面的“Test”值是一样的

使用道具 举报

回复
认证徽章
论坛徽章:
58
生肖徽章2007版:马
日期:2009-11-06 23:12:33授权会员
日期:2013-01-10 14:38:592013年新春福章
日期:2013-02-25 14:51:24马自达
日期:2013-08-07 10:54:45红旗
日期:2013-08-09 13:48:48劳斯莱斯
日期:2013-09-12 15:56:37萤石
日期:2013-10-31 08:44:19优秀写手
日期:2013-12-18 09:29:13Jeep
日期:2014-01-14 10:53:432014年新春福章
日期:2014-02-18 16:43:09
发表于 2011-4-29 13:37 | 显示全部楼层
把原来的in改成表连接是好办法我也常常搞的

in改成=any如何?

使用道具 举报

回复
认证徽章
论坛徽章:
58
生肖徽章2007版:马
日期:2009-11-06 23:12:33授权会员
日期:2013-01-10 14:38:592013年新春福章
日期:2013-02-25 14:51:24马自达
日期:2013-08-07 10:54:45红旗
日期:2013-08-09 13:48:48劳斯莱斯
日期:2013-09-12 15:56:37萤石
日期:2013-10-31 08:44:19优秀写手
日期:2013-12-18 09:29:13Jeep
日期:2014-01-14 10:53:432014年新春福章
日期:2014-02-18 16:43:09
发表于 2011-4-29 13:38 | 显示全部楼层
AND PrpTmain.ComCode =any ('50000000', '50000010', '50000020', '50000030', '50000040',
        '50000050', '50010000', '50010010', '50010020', '50010030',
        '50010040', '50010050', '50010060', '50010070', '50010080',
        '50010090', '50010100', '50020000', '50020010', '50020020',
        '50020030', '50020040', '50020050', '50020060', '50020070',
        '50020080', '50020090', '50020100', '50029990', '50030020',
        '50030030', '50030050', '50030060', '50030070', '50030080',
        '50030090', '50030100', '50030110', '50030120', '50030130',
        '50040010', '50040020', '50040030', '50040040', '50040050',
        '50040060', '50040070', '50040080', '50040090', '50040100',
        '50040110', '50040120', '50040130', '50040140', '50040150',
        '50050000', '50060000', '50070000', '50071000', '50072000',
        '50073000', '50080000', '50081000', '50082000', '50083000',
        '50090000', '50100000')

效果不会太明显  估计

使用道具 举报

回复
认证徽章
论坛徽章:
58
生肖徽章2007版:马
日期:2009-11-06 23:12:33授权会员
日期:2013-01-10 14:38:592013年新春福章
日期:2013-02-25 14:51:24马自达
日期:2013-08-07 10:54:45红旗
日期:2013-08-09 13:48:48劳斯莱斯
日期:2013-09-12 15:56:37萤石
日期:2013-10-31 08:44:19优秀写手
日期:2013-12-18 09:29:13Jeep
日期:2014-01-14 10:53:432014年新春福章
日期:2014-02-18 16:43:09
发表于 2011-4-29 13:39 | 显示全部楼层
至于rac性能调整还 经验积累不多

使用道具 举报

回复
认证徽章
论坛徽章:
9
ITPUB社区OCM联盟徽章
日期:2013-03-27 11:17:11奥运纪念徽章
日期:2013-06-18 09:13:52ITPUB社区千里马徽章
日期:2013-08-22 09:58:03大众
日期:2013-08-30 14:51:33路虎
日期:2013-12-01 18:25:42
发表于 2011-4-29 13:43 | 显示全部楼层
条件我先不动他的。他说是必须,我汗。。。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表