日期:2014-05-16 浏览次数:20484 次
执行计划的执行顺序
PARENT
FIRST?
CHILD
SECOND CHILD
在这个例子里,
FIRST CHILD
最先执行,然后是
SECOND CHILD
,这两个步骤执行完毕后,执行
PARENT
。下面是一个更多层次的结构:
PARENT1
FIRST?
CHILD
FIRST?
GRANDCHILD
SECOND CHILD
FIRST?
GRANDCHILD
是第一个执行的步骤,然后是
FIRST CHILD
。下面通过一个真实的执行计划来验证这个原则:
set autotrace traceonly explain
select ename,dname?
from emp, dept?
where emp.deptno=dept.deptno?
and dept.dname in
?
(‘ACCOUNTING’,’RESEARCH’,’SALES’,’OPERATIONS’);
15 rows selected.
这个语句的执行计划如下:
Execution Plan
----------------------
??
0?????
SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=8 Bytes=248)
??
1???
0??
HASH JOIN (Cost=3 Card=8 Bytes=248)
??
2???
1????
TABLE ACCESS (FULL) OF
‘
DEPT
’
(Cost=1 Card=3 Bytes=36)
???
如果要了解执行计划和执行顺序,必须理解执行计划的父子关系。执行计划是一个树状结构,顶层的
STATEMENT
是这棵树的根。父子关系按照如下的树状结构组织: