从品牌网站建设到网络营销策划,从策略到执行的一站式服务
Oracle 性能优化 -SQL 优化 ( 案例一 )
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、雅安服务器托管、营销软件、网站建设、平山网站维护、网站推广。环境:
OS:Red Hat Enterprise Linux AS release 4
DB:Oracle 10.2.0.1.0
问题现象:
客户反馈ERP 系统操作缓慢,服务器IO 负载较高;
问题原因:
(1) 个别 SQL 执行效率较低,由于 SQL 执行计划不合理,造成 SQL 执行过程中的逻辑读和物理读较多,导致服务器 IO 负载较高, ERP 运行缓慢;
(2) 收集统计信息的 JOB 执行时间为工作时间 9:13 ,和正常业务产生资源争用;
解决方案:
(1) 优化 SQL 执行效率,减少 SQL 执行过程中产生的逻辑读和物理读,降低服务器 IO 负载;
方法:
收集数据不均匀列checkman 和 senderman 的统计直方图;
(2) 建议将收集统计信息的 JOB 执行时间更改为非工作时间;
问题分析过程:
可以通过Oracle AWR 报告或者 iostat 命令查看 IO 负载较高:
查找IO 负载高的原因:
通过AWR 报告可以看到消耗资源过多的 SQL 主要来源于以下两个:
一:协同凭证操作对应的SQL
二:用于自动收集统计信息的JOB
DECLARE job BINARY_INTEGER := :job; next_date DATE := :mydate; broken BOOLEAN := FALSE; BEGIN ANALYZE_TB ; :mydate := next_date; IF broken THEN :b := 1; ELSE :b := 0; END IF; END
通过AWR 查看 SQL
通过PLSQL 查看 SQL
通过NMC 查看 SQL
SQL 优化:
通过绑定变量值以及SQL 执行计划分析 SQL 产生的执行计划不合理, pub_workflownote 表没有走索引,而是走全表扫描;
查看数据分布情况,发现senderman 和 checkman 列分布不均匀
对senderman 和 checkman 列收集统计直方图
再次查看SQL 执行计划,发现 pub_workflownote 表可以正常走索引
生成统计直方图后进行了第一次绑定变量窥探,将生成第一个带入参数值的正确执行计划;
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图