执行计划的执行顺序精解(2)

格式化显示执行计划的父子关系,通过父子关系,分析执行计划的执行顺序

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;

    ID  PARENT_ID  OPERATION

    5   4         INDEX UNIQUE SCAN DEPT_ID_PK

    7   6         INDEX UNIQUE SCAN LOC_ID_PK

    4   3        TABLE ACCESS BY INDEX ROWID DEPARTMENTS

    6   3        TABLE ACCESS BY INDEX ROWID LOCATIONS

    3   2       NESTED LOOPS 

    8   2       TABLE ACCESS FULL EMPLOYEES

    2   1      NESTED LOOPS 

    9   1      TABLE ACCESS FULL JOBS

    1   0     HASH JOIN 

    0      SELECT STATEMENT 

 

分析执行计划顺序

 ID 红色显示的为子ID(也就是语句的执行顺序,后面我将具体分析),parent_id 黑色显示的为父ID. 查看缩进关系,最深缩进的ID57,那么它们先执行,因为缩进的深度一致,根据先上后下的原则,ID=5的最先执行,ID=4第二个执行。依据父子关系图,ID=5的父亲为parent_id=4ID=7的父亲为parent_id=6

因为缩进的深度一致,根据先上后下的原则,ID=7的第三个执行,ID=6的第四个执行。依据父子关系图,ID=4parent_id父亲为3ID=6的父亲parent_id也为3ID=8因为缩进深度与ID=3的缩进深度一致,根据先上后下的原则,ID=3的第五个执行,ID=8的第六个执行。依据父子关系图,ID=3的父亲为parent_id=2ID=9的因为缩进的深度与ID=2一致,根据先上后下的原则,ID=2的第七个执行,ID=9的第八个执行。ID=2ID=9的父亲都是1第九个执行的是ID=1,最后执行的是ID=0

 

 执行的顺序ID为:5>4>7>6>3>8>2>9>1>0

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21266384/viewspace-767735/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21266384/viewspace-767735/

你可能感兴趣的:(执行计划的执行顺序精解(2))