【DB笔试面试601】在Oracle中,给出下面执行计划的执行顺序。

640?wx_fmt=gif

题目部分



阅读如下的执行计划,给出SQL的执行顺序。

 1----------------------------------------- 2| Id  | Operation 3----------------------------------------- 4|   0 | SELECT STATEMENT 5|   1 |  SORT AGGREGATE 6|   2 |   VIEW 7|   3 |    UNION-ALL 8|*  4 |     FILTER 9|*  5 |      HASH JOIN10|   6 |       TABLE ACCESS FULL11|*  7 |       TABLE ACCESS FULL12|*  8 |      TABLE ACCESS BY INDEX ROWID13|*  9 |       INDEX UNIQUE SCAN14|  10 |     NESTED LOOPS15|  11 |      INDEX FULL SCAN16|  12 |      TABLE ACCESS CLUSTER17|* 13 |       INDEX UNIQUE SCAN18------------------------------------------------------------------------------------
2| Id  | Operation
3-----------------------------------------
4|   0 | SELECT STATEMENT
5|   1 |  SORT AGGREGATE
6|   2 |   VIEW
7|   3 |    UNION-ALL
8|*  4 |     FILTER
9|*  5 |      HASH JOIN
10|   6 |       TABLE ACCESS FULL
11|*  7 |       TABLE ACCESS FULL
12|*  8 |      TABLE ACCESS BY INDEX ROWID
13|*  9 |       INDEX UNIQUE SCAN
14|  10 |     NESTED LOOPS
15|  11 |      INDEX FULL SCAN
16|  12 |      TABLE ACCESS CLUSTER
17|* 13 |       INDEX UNIQUE SCAN
18-------------------------------------------




     
答案部分



分析:采用最右最上最先执行的原则看层次关系,在同一级如果某个动作没有子ID那么就最先执行,首先,67913最右,所以,67最先执行做HASH JOIN,为675

第二,8有子节点,接下来是98

第三,HASH的结果和8的结果做FILTER过滤。

第四,10这个节点根据原则是11131210

第五,剩下依次是3210

所以,该图的执行顺序是675984111312103210



本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。



640?wx_fmt=gif

---------------优质麦课------------

640?wx_fmt=png

 详细内容可以添加麦老师微信或QQ私聊。


640?wx_fmt=gif


About Me:小麦苗

 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

 版权所有,欢迎分享本文,转载请保留出处

 QQ:646634621  QQ群:618766405

 提供OCP、OCM和高可用部分最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

640?wx_fmt=gifDBA宝典

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。

640?wx_fmt=gif

640?wx_fmt=png 喜欢就点击“好看”吧



你可能感兴趣的:(【DB笔试面试601】在Oracle中,给出下面执行计划的执行顺序。)