一、訪問表執行計划
1、table access full:全表掃描。它會訪問表中的每一條記錄(讀取高水位線以內的每一個數據塊)。
2、table access by user rowid:輸入源rowid來自於用戶指定。
3、table access by index rowid:輸入源rowid來自於索引。
4、table access by global index rowid:全局索引獲取rowid,然后再回表。
5、table access by local index rowid:分區索引獲取rowid,然后再回表。
6、table access cluster:通過索引簇的鍵來訪問索表。
7、external table access:訪問外部表。
8、result cache:結果集可能來自於緩存。
9、mat_view rewrite access:物化視圖。
二、與B-TREE索引相關的執行計划
1、index unique scan:只返回一條rowid的索引掃描,或者unique索引的等值掃描。
2、index range scan:返回多條rowid的索引掃描。
3、index full scan:順序掃描整個索引。
4、index fast full scan:多塊讀方式掃描整個索引。
5、index skip scan:多應用於組合索引中,引導鍵值為空的情況下索引掃描。
6、and-equal:合並來自於一個或多個索引的結果集。
7、domain index:應用域索引。
三、與BIT-MAP索引相關的執行計划
1、bitmap conversion:將位轉換為rowid或相反。
2、bitmap index:從位圖中取一個值或一個范圍。
3、bitmap merge
4、bitmap minus:
5、bitmap or:
四、與表連接相關的執行計划
1、merge join:排序合並連接。
2、nested loops:嵌套循環連接。
3、hash join:哈希連接。
4、cartesian:笛卡爾積連接。
5、connect by:層次查詢索引,多來自於start with子句。
6、outer:外鏈接。
1)merge join outer:
2)nested loops outer:
3)hash join outer:
7、anti:反連接。
1)merge join anti:
2)nested loops anti:
3)hash join anti:
8、semi:半連接。
1)merge join semi:
2)nested loops semi:
3)hash join semi:
五、與集合相關的執行計划
1、union-all:
2、union(union-all,sort unique):
3、concatenation:
4、intersection:
5、minus:
六、與分區相關的索引
1、partition single:訪問單個分區。
2、partition iterator:訪問多個分區。
3、partition all:訪問所有分區。
4、partition inlist:基於in列表中的值來訪問分區。
七、與sort相關的執行計划
1、sort unique:排序、去重。
2、sort join:為merge join的第一步,排序操作,一般與merge join聯合使用。
3、sort aggregate:當分組好的數據上使用分組函數時。
4、sort order by:單純的排序
5、sort group by:排序並分組
6、buffer sort:對臨時結果進行一次內存排序。
八、其他執行計划
1、view:
2、count:
3、stopkey:目標sql中存在rownum<10這種情況。
4、hash group by:
5、inlist iterator:
6、filter:過濾,相當於處理過的排序合並連接。
7、remote:與dblink相關的執行計划。
8、for update:
9、sequence:使用了oracle序列。
10、collection iterator:使用了表函數提取記錄。
11、fast dual:訪問dual表。
12、first row:獲取查詢的第一條記錄。
13、load as select:使用select進行直接路徑insert操作,通常加/*+append*/提示。
14、fixed table:訪問固定的(X$/V$)表。
15、fixed index:訪問固定的索引。
16、window buffer:支持分析函數的內部操作。