【新炬网络名师大讲堂】Oracle11gR2升级之DB Replay性能保障

新炬网络定期推出“名师大讲堂”专业IT技术知识分享,内容涉及Oracle数据库、性能测试、软件自动化测试等,与工作在技术前线的小伙伴们一起探讨实践中出现的技术难题,提供有效解决方案,大家通过交流共同成长
与SPA的SQL语句的性能变化不同,Oracle 11g的另一个升级利剑Database Replay同时关注的系统整体的性能情况,从而我们可以得知,新环境是否足以承载整个现有业务以及业务的发展。

  • 基本路径:

先在10g/9i上捕获应用程序的负载,这包括跨多个会话同时收集所有依赖的事务时捕获并行执行的相同SQL语句的能力,然后在测试系统上重放捕获的负载,因此DBA可以准确的判断任何系统改变对负载的影响。

过程这里省略,直接看结果吧。

dbreplay

从这个表格我们可以看到,重演的耗时,比捕获要长的多! 捕获只消耗了不到90分钟,重演却花了127分钟了都还没结束。为什么呢?

CPU比较

将重演和捕获的时间重叠90分钟,可以发现再11g环境下,这段业务消耗的CPU使用率从30%上升至节点1的60%,节点2攀至40%。当然,这有一部分是因为10g环境是24CPU的IBMP570,新环境是20CPU的机器。

logical

比较新老环境的逻辑读:

通过上述对比可以看出新环境每秒逻辑读次数明显降低,应该是迁移后较多SQL执行计划改变或碎片得到收集,使得相同SQL语句执行消耗降低,从而使得每秒逻辑读次数降低。

继续比较几个指标:

physical sqlcount redo

可以看到,除了物理读在新环境中翻了几倍外,其余指标均是下降了。

进一步看SQL;

SQL1:

SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( select contact_id, PEL_phone, kf_no, login_no, serv_code, serv_no, insert_time, send_time, send_content, send_flag, invild_time from DX_SEND_LOGGING where 1=1 and send_time >= to_date(’2013-05-08 00:00:00′, ‘yyyy-mm-dd HH24:mi:ss’) and send_time <= to_date(’2013-05-08 23:59:59′, ‘yyyy-mm-dd HH24:mi:ss’) and kf_no=’8957′ order by send_time DESC ) A WHERE ROWNUM <= :1 ) WHERE RN > :2

SQL2:
DELETE FROM DRFORMPEL T1 WHERE T1.ID IN ( SELECT T4.ID FROM ( SELECT T3.ID, ROWNUM NUM FROM (SELECT T2.ID FROM DRFORMPEL T2 WHERE T2.PEL_ID = :1 ORDER BY TO_NUMBER(ID) DESC ) T3 ) T4 WHERE T4.NUM > :2)
这两条SQL语句在源库执行频繁。在新库走了全表扫描,通过搜集直方图后,单次执行效率从执行时间从4分03秒下降至5秒内

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29960155/viewspace-1352833/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29960155/viewspace-1352833/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值