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

2021/4/16 19:27:13

本文主要是介绍【DB笔试面试601】在Oracle中,给出下面执行计划的执行顺序。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

♣          题目         部分



阅读如下的执行计划,给出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 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,那么就最先执行,首先,6、7、9、13最右,所以,6,7最先执行做HASH JOIN,为6,7,5。

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

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

第四,10这个节点根据原则是11,13,12,10。

第五,剩下依次是3,2,1,0。

所以,该图的执行顺序是6,7,5,9,8,4,11,13,12,10,3,2,1,0。




这篇关于【DB笔试面试601】在Oracle中,给出下面执行计划的执行顺序。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程