Oracle数据库之Oracle AWR性能优化一例
小标 2019-06-24 来源 : 阅读 948 评论 0

摘要:本文主要向大家介绍了Oracle数据库之Oracle AWR性能优化一例,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

本文主要向大家介绍了Oracle数据库之Oracle AWR性能优化一例,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

Oracle数据库之Oracle AWR性能优化一例

有一个批处理程序运行超过24小时仍然不能完成,采集了程序运行期间的AWR报告如下。


由上可以看到,该系统为AIX的单实例数据库,采样时长1319.96 分钟,DB time 1532.15分钟。


看一下TOP等待事件:


可以看到有非常高的DB file scattered read等待事件,该等待事件表示将大量的数据块读入到不连续的内存区域,往往预示着大的全表扫描。
在程序运行期间,查看ASH动态视图v$active_session_history,同样可以发现发生着大量的DB file scattered read 等待事件,从该视图的执行计划列可以看到正在发生着 Table Full Scan.


接着我们看TOP SQL部分:


我们看到 SQL ID 为2yhcj6jcbtvac的SQL语句消耗大量的资源, 该SQL语句如下:
SELECT MATCH_CLIENT_ID , MATCH_CLIENT_ROLE , DECODE(MATCH_SYS_CODE, 'HKP', 1, 'UVP', 2, 'CAS', 3, 'NB', 4, 'GP', 5, 'GLH', 6, 'GI', 7, 'MFD', 8, 'CRC', 9, 10) AS MATCH_POL_ORDER , MATCH_SYS_CODE , MATCH_LOB , MATCH_CONTRACT_NO , MATCH_CERTIFICATE_NO FROM POSSIBLE_CUST_REPORT_SCB WHERE BATCH_DATE = :B3 AND CLIENT_ID = :B2 AND MATCH_CLIENT_ID = :B1


可以看到该语句为一个单表查询,从v$active_session_history也可以看到就是该语句发生着大量的DB file scattered read, 查看该表的定义,没有索引,所以初次可以判定,以上的SQL语句被多次执行,并且因为没有索引所以在产生全表扫描。


查看AWR的segment部分,更确认了这一点:


该表段上产生最大的逻辑读、物理读和非优化的读取。


所以, 现在完全可以确定,该表上大量的全表扫描是最主要的性能问题,所以需要在该表上添加索引。


在该表上创建索引:
CREATE INDEX idx1_POSSIBLE_CUST_REPORT_SCB ON POSSIBLE_CUST_REPORT_SCB(BATCH_DATE,CLIENT_ID,MATCH_CLIENT_ID);


所以创建完成后,立刻再次查看v$active_session_history,可以看到执行路劲改走索引。
最终结果确认,该批处理程序性能提升3倍以上。

   

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程