《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一第2章 解读执行计划-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一第2章 解读执行计划

简介: 本节书摘来自华章出版社《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一 书中的第2章,第2.1节,作者:黄玮,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第2章 解读执行计划

我们掌握了获取和显示执行计划的方法后,就可以开始了解如何来读懂一个执行计划。从我们前面的示例中可以发现,一个执行计划实际上是一个树状关系的结构图。在这个树状结构图中,每一个节点代表了一个操作(相应的,它们在PLAN_TABLE、V$SQL_PLAN等执行计划表、视图中都有一条记录),每个支节点(或者说父节点)下都有一个或多个子操作;除根节点外,每个节点都仅隶属于一个支节点。同一层操作按照它们的ID顺序执行。操作由顶向下调用,即父操作调用子操作;数据由底向上返回,即子节点获取到的数据在处理完成后返回给父节点。
提示:请执行脚本02_01_SQL_Explain<版本>.sql创建函数SQL_Explain,注意区分版本。
从前一章的示例中可以看到,执行计划包含了相当丰富的信息。通过执行计划,我们不仅可以知道SQL引擎将以什么样的访问顺序访问对象、获取语句的输出结果,而且还可以获得优化器估算出的代价结果、运行时间以及其他一些额外信息。在本章中,将为读者详细解释执行计划中的内容。阅读完本章以后,读者再拿到任何一个语句的执行计划,都能读懂该执行计划的含义,并能通过它传达给我们的信息来了解SQL执行该语句的过程及性能。
在本章中,我们将会了解到以下内容:
执行计划中存在哪些基本数据及其具体含义;
执行计划操作与Oracle内部函数之间的关系;
执行计划中所有列的具体含义;
执行计划每个数据源操作的具体含义及其示例;
与执行计划相关的其他信息含义。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: