【视频教学:性能优化】Maclean Liu的Oracle性能优化讲座第一回《真正读懂Oracle SQL执行计划》
b站的搬运: https://www.bilibili.com/video/BV1e5411w78f/
本次的讲座议程包括:
- 如何查看SQL执行计划
- 正确的执行计划执行顺序
- 通过示例来实践正确阅读执行计划的方法
- 介绍执行步骤的特性
读懂执行计划有什么用呢?
- 执行计划贯穿Oracle调优始终
- 了解执行计划的真实执行过程,将有助于优化
- 对于Oracle的原理理解有一定帮助
- 解决部分同学心中多年的疑惑
- 读懂执行计划,SQL调优的第一步
什么是SQL Execution Plan执行计划?
- SQL是声明型语言,她只说我要去哪里,但很少告诉你到底如何去?
- RDBMS所要做的是基于算法和现有统计信息计算最佳路径:
- Access Path访问路径分析:访问数据是用TableScan还是index (FFS)
- 对返回的行结果集做例如Join的进一步处理,以便返回行给客户端
- SQL语句的执行最终会落实为Oracle执行步骤的组合 =》【SQL执行计划】
更多内容见本次讲座正式版 讲义PDF版目前可供下载:
Maclean Liu的Oracle性能优化讲座 第一回-真正读懂Oracle SQL执行计划Execution Plan .pdf (1.94 MB, 下载次数: 2370)
刘大的视频讲的真好,讲的很细,也纠正了我以前的错误理解,深受启发,但对示例4有点不明白,为什么联接顺序为:T1 – T2 – T3 而不是T3– T1– T2?我的理解是这样的,t3先全表扫描,造HASH TABLE,然后是T1 和T2做的hash join 后的结果集作为探测表,其中在T1 和T2做的hash join 后的结果集作为探测表的过程中,t1也先全表扫描,造HASH TABLE,T2 全表扫描做探测表。忘给以指点,谢谢!
对不起,我想明白了。刘老师讲的联接顺序为:T1 – T2 – T3 是正确的,是我把表的连接顺序和表的访问顺序搞混乱了!支持刘大!