看懂执行计划之执行顺序
口诀
最右最上先执行
方法
- 从上往下,第一个没有子节点的步骤先执行
- 对于兄弟节点,即靠上的节点先执行
- 所有兄弟节点执行完以后,执行父节点
- 缩进最深的,最先执行
- 缩进深度相同的,先上后下
原则
从上至下,从右向左
由上至下:在执行计划中一般含有多个节点,相同级别(或并列)的节点,靠上的优先执行,靠下的后执行
从右向左:在某个节点下还存在多个子节点,先从最靠右的子节点开始执行。
先从最开头一直连续往右看,直到看到最右边的并列的地方;对于不并列的,靠右的先执行;如果见到并列的,就从上往下看,对于并列的部分,靠上的先执行。
格式化显示父子关系
select id, parent_id, operation
from (select level lvl,
id,
parent_id,
lpad(' ', level) || operation || ' ' || options || ' ' ||
object_name as operation
from plan_table
start with id = 0
connect by prior id = parent_id)
order by lvl desc, id;
该SQL必须同explain plan for 在同一个session(即同一个窗口执行)
查看执行顺序工具
-
PL/SQL Developer 快捷键F5