閱讀以下的執行計劃,給出SQL的執行順序。ide
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,那麼就最早執行,首先,六、七、九、13最右,因此,6,7最早執行作HASH JOIN,爲6,7,5。spa
第二,8有子節點,接下來是9,8。3d
第三,HASH的結果和8的結果作FILTER過濾。blog
第四,10這個節點根據原則是11,13,12,10。it
第五,剩下依次是3,2,1,0。io
因此,該圖的執行順序是6,7,5,9,8,4,11,13,12,10,3,2,1,0。class