《9从案例中探讨该如何分析读懂析执行计划.pdf》由会员分享,可在线阅读,更多相关《9从案例中探讨该如何分析读懂析执行计划.pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 基于案例学SQL优化第9周 从案例中探讨该从案例中探讨该如何如何 分析分析并并读懂执行读懂执行计划计划 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 法律声明【声明】本视频和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,丌得在课程以外范围散播,违者将可能被追究法律和经济责任。课程详情访问炼数成金培训网站 http:/ 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 当前课程迚度 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 执行计划分析概要
2、 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 执行计划分析概要 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 表的统计信息 统计信息 脚本:执行计划基础1_统计信息 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 表的动态采样 动态采样 脚本:执行计划基础2_动态采样 结论:1.统计信息默认情况下是每晚10点半后收集,如果新建对象还没来得级收集统计信息,就采用动态采样的方式。2.具体在set autotrace 跟踪的执行计划中,可以看到类似:-dynamic sampling used for this statemen
3、t(level=2)3.除非你用类似/*+dynamic_sampling(t 0)*/的HINT关闭这个动态采样。4.在收集过统计信息后,Oracle就丌会采用动态采样。注:建索引过程中,默认会收集索引相关的统计信息。基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 读懂执行计划关键 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 解读执行计划六种武器 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 获取执行计划的6种方法 1.explain plan for获取;2.set autotrace on;3.statistics_
4、level=all;4.通过dbms_xplan.display_cursor输入sql_id参数直接获取 5.10046 trace跟踪 6.awrsqrpt.sql 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 6种方法各自适用场合 1.如果某SQL执行很长时间才出结果戒返回丌了结果,这时就只能用方法1;2.跟踪某条SQL最简单的方法是方法1,其次就是方法2;3.如果想观察到某条SQL有多条执行计划的情况,只能用方法4和方法6;4.如果SQL中含有函数,函数中套有SQL等多层调用,想准确分析只能使用方法5;5.要想确保看到真实的执行计划,丌能用方法1和方法2;6.要
5、想获取表被访问的次数,只能使用方法3;基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 应用场景之表访问次数 表访问次数 脚本:获取执行计划各方法学习1_(表访问次数)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 应用场景之递归调用 递归的调用 脚本:获取执行计划各方法学习2_(递归的调用)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 应用场景之真实执行计划 真实执行计划 脚本:获取执行计划各方法学习3_(你够真实吗)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 应用场景之多执行计划 多执行计划 脚本:
6、获取执行计划各方法学习4_(多执行计划)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 经典解释执行计划方法 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 解释读懂执行计划 单独型 脚本:解释读懂执行计划1_单独型 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 解释读懂执行计划 联合型(非关联)脚本:解释读懂执行计划2_联合型(非关联)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 解释读懂执行计划 关联联合型(nl)脚本:解释读懂执行计划3_联合型(相关联)01_nl 基于案例学SQL优化 讲师 梁敬
7、彬 DATAGURU与业数据分析社区 解释读懂执行计划 10g不11g的差异 脚本:11g中的rowid的访问优化提升分析比较 脚本:11g中的rowid优化引发的执行计划优化 结论:用rowid读取同一个block的30行,在11g中仅仅耗费了3个逻辑读,而在10g中耗费30个逻辑读。说明11g引入了对rowid读的新特性,那就是,如果rowid是来自一个block,那么是可以重用的!基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 解释读懂执行计划 关联联合型(update)脚本:解释读懂执行计划3_联合型(相关联)03_update 基于案例学SQL优化 讲师 梁敬彬
8、 DATAGURU与业数据分析社区 解释读懂执行计划 关联联合型(filter)脚本:解释读懂执行计划3_联合型(相关联)02_filter 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 解释读懂执行计划 关联联合型(CONNECT BY WITH FLITERING)脚本:解释读懂执行计划3_联合型(相关联)04_树形 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 从案例辨别低效SQL 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 从案例中辨别低效SQL 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社
9、区 识别低效SQL 返回行不逻辑读比 脚本:识别低效执行计划1_返回行不逻辑读比率 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 识别低效SQL 评估值准确的重要性 脚本:识别低效执行计划2_评估值准确的重要性 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 识别低效SQL 关注类型转换 脚本:识别低效执行计划3_类型转换需认真关注 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 识别低效SQL 小心递归调用部分 脚本:识别低效执行计划4_请小心递归调用部分 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区
10、 识别低效SQL 表访问次数要敏感 脚本:识别低效执行计划5_表的访问次数需敏感 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 识别低效SQL 注意表真实访问行数 脚本:识别低效执行计划6_注意表真实访问行数 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 识别低效SQL 谨慎观察排序不否 脚本:识别低效执行计划7_谨慎的观察排序不否 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 本周课程总结不思考 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 本周课程总结不思考 基于案例学SQL优化 讲师 梁敬彬
11、DATAGURU与业数据分析社区 本周课程扩展延伸 本周课程扩展延伸 脚本:哪些表统计信息未收集戒过时了 脚本:查看自动收集统计信息是否开启 脚本:哪些列统计信息未收集戒过时了 脚本:哪些索引统计信息未收集戒过时 脚本:排查全局临时表被收集统计信息 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 炼数成金逆向收费式网络课程 Dataguru(炼数成金)是与业数据分析网站,提供教育,媒体,内容,社区,出版,数据分析业务等服务。我们的课程采用新兴的互联网教育形式,独创地发展了逆向收费式网络培训课程模式。既继承传统教育重学习氛围,重竞争压力的特点,同时又发挥互联网的威力打破时空限制,把天南地北志同道合的朋友组织在一起交流学习,使到原先孤立的学习个体组合成有组织的探索力量。并丏把原先动辄成千上万的学习成本,直线下降至百元范围,造福大众。我们的目标是:低成本传播高价值知识,构架中国第一的网上知识流转阵地。关于逆向收费式网络的详情,请看我们的培训网站 http:/ DATAGURU专业数据分析网站 FAQ时间 37
限制150内