黄远邦_复杂而有趣的oracle优化案例集锦

黄远邦_复杂而有趣的oracle优化案例集锦

ID:9226015

大小:1.37 MB

页数:60页

时间:2018-04-23

黄远邦_复杂而有趣的oracle优化案例集锦_第1页
黄远邦_复杂而有趣的oracle优化案例集锦_第2页
黄远邦_复杂而有趣的oracle优化案例集锦_第3页
黄远邦_复杂而有趣的oracle优化案例集锦_第4页
黄远邦_复杂而有趣的oracle优化案例集锦_第5页
资源描述:

《黄远邦_复杂而有趣的oracle优化案例集锦》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、复杂而有趣的ORACLE优化案例集锦 黄远邦 13701026113 51994016@qq.com关于我•北京中亦科技资深ORACLEDBA•擅长数据中心大规模ORACLE运维•擅长ORACLESQL优化、综合性能优化•擅长ORACLE综合故障诊断•开发了多款ORACLE运维实用工具内容摘要RAC优化案例1之SQL优化RAC优化案例2之SQL改写优化RAC优化案例3之实例优化RAC优化案例4之操作系统和IO优化RAC优化案例5之架构优化SQL优化案例1(不看SQL语句直接优化SQL)判断SQL效率是否有问题StatNameStatementPerExecutionElapsed

2、Time(ms)2,919,39714,241CPUTime(ms)1,168,2705,699Executions205N/ABufferGets2.05E+0799,939.1DiskReads75,393368ParseCalls1850.9Rows2,21011UserI/OWaitTime(ms)312,852N/AClusterWaitTime(ms)443,562N/AApplicationWaitTime(ms)0N/A分析执行计划找到执行计划的问题点Id=20的步骤占据了整个cost18672中的18480,该步骤是瓶颈!虽然是全表扫描,但是该表应用过滤条件后返

3、回3308K行,330万条,没问题?找到执行计划的问题点id=9和id=19的步骤做hashjoin,1行和330万行表关联,返回1行(id=8),即小结果集和大结果集关联返回小结果集,应该走嵌套最合适,没走,那就是不满足嵌套连接的条件,即内部表TB2缺少索引!找到谓词部分和连接条件即可定位问题提出解决方案并测试createindexidx_tb2_idontb2(id)onlinetablespace&tablespace_name;优化效果对比指标原SQL语句优化后执行时间140.1逻辑读99,9395348内容摘要RAC优化案例1之SQL优化RAC优化案例2之SQL改写优化

4、RAC优化案例3之实例优化RAC优化案例4之操作系统和IO优化RAC优化案例5之架构优化SQL优化案例2之SQL等价改写问题描述:程序效率低下,无法达到上线要求,执行时间超过5天未结束SQL语句:原SQL语句较长,将该复杂SQL简化为下列模型Select*fromAwhere(A.idinx_subqueryora.idnotiny_subquery)and(A.idinz_subqueryora.idnotinw_subquery)思考下这个SQL写法会有什么问题?SQL效率低下原因分析Select*fromAwhere(A.idinx_subqueryora.idnotiny

5、_subquery)and(A.idinz_subqueryora.idnotinw_subquery)对于(or)and(or)的写法,oracle查询转换是无能为力的优化器原理上只能按照下列方法实现1)A表取一条记录必须去探测子查询x/y/z/w2)A表再取一条记录再去探测子查询3)直到A表所有记录探测完成,SQL执行计划表连接只能是filter,而无法利用hashantijoinA表满足条件的记录数达到14万条,需要探测子查询14万次每探测一次都需要把各个子查询重新执行一次!这就是为什么执行时间超过5天都没有结束的原因!如何优化?Select*fromAwhere(A.id

6、inx_subqueryorA.idnotiny_subquery)and(A.idinz_subqueryorA.idnotinw_subquery)X是y都来自同一张表,且x是y的子集z是w都来自同一张表,且z是w的子集画图是SQL等价改写很好的习惯(A.idinx_subqueryornotiny_subquery)的执行过程NOTIN的结最终满足条件的结果!果IN的结果XAYA.idnotin(y_subqueryminusx_subquery)的结果见绿色部分绿色为最终结果,与前面写法结果一致!INA的结果XxYminusyx结果比较NOTIN的结最终满足条件的结果!果

7、AAXxIN的结果XIN的结果YminusyYx最终写法Select*fromAwhere(A.idinx_subqueryorA.idnotiny_subquery)and(A.idinz_subqueryorA.idnotinw_subquery)Select*fromAwhereA.idnotin(y_subqueryminusx_subquery)andA.idnotin(w_subqueryminusz_subquery)A可以先后两次与子查询的结果做hashantij

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。