Oracle 常見的執行計畫步驟(explain結果的Description資料參考)____Oracle

來源:互聯網
上載者:User

在PL/SQL中 執行explain plain for  select ...



查看Description 資料參考:


 

Oracle 常見的執行計畫步驟

 

 

這裡我們介紹一些常見的執行計畫中的步驟及演算法。

1、表訪問路徑

(1)TABLE ACCESS 

FULL:全表掃描。它會訪問表中的每一條記錄(讀取高水位線以內的每一個資料區塊)。

CLUSTER:通過索引簇的鍵來訪問表。

BY INDEX ROWID:通過指定ROWID來訪問表中的單條記錄。ROWID是訪問記錄的最快方式,通常由索引訪問得到。

BY USER ROWID:提供一個綁定變數、字面變數或WHERE CURRENT OF CURSOR子句來通過ROWID進行訪問。

BY GLOBAL INDEX ROWID:通過由全域分區索引來獲得ROWID,然後進行表訪問。該訪問出現在分區表中。

BY LOCAL INDEX ROWID:通過由局部分區索引獲得ROWID,然後進行表訪問。該訪問出現在分區表中。

(2)EXTERNAL TABLE ACCESS:訪問外部表格。

(3)RESULT CACHE:這個SQL結果集可能來自結果集緩衝。

(4)MAT_VIEW REWRITE ACCESS:SQL被重寫以利用物化視圖。

 

2、索引操作

(1)AND-EQUAL:合并來自一個或多個索引的結果集。

(2)INDEX

UNIQUE SCAN:只返回一條記錄的地址(ROWID)的索引掃描。

RANGE SCAN:返回多條記錄的ROWID的索引檢索。一般出現這樣的訪問,是因為出現了區間操作符。

FULL SCAN:按照索引鍵的順序掃描整個索引。

SKIP SCAN:複合式索引鍵中非前置列索引檢索。

FULL SCAN(MAX/MIN):檢索索引中的最高或最低的索引條目。

FAST FULL SCAN:按照塊順序掃描每一個索引的條目,可能會使用多塊讀取。

(3)DOMAIN INDEX:應用域索引。

 

3、位元影像索引操作

(1)BITMAP

CONVERSION:將位轉換為ROWID或相反。

INDEX:從位元影像中撮一個值或一個範圍的值。

MERGE:合并位元影像。

MINUS:從一個位元影像減去另一個位元影像。

OR:對兩個位元影像進行OR操作。

 

4、表串連操作

(1)CONNECT BY:對前一個步驟的輸出結果執行一個層次化的自串連操作。

(2)MERGE JOIN:對前一個步驟的輸出結果執行一個合并串連。

(3)NESTED LOOP:對前一個步驟執行嵌套迴圈串連。對上一層結果集的每一行,都會掃描下一層結果集以找到匹配記錄。

(4)HASH JOIN:對兩個記錄進行散列串連。

(5)任意串連操作

OUTER:外串連

ANTI:反串連

SEMI:反串連

CARTESIAN:一個結果集中的每一條記錄都與另一個結果集中的每一條記錄進行串連。

 

5、集合操作

CONCATENATION:與顯式指定一個UNION子句一樣,多個結果集被按照同樣的方式做合并。它通常發生在對索引列使用OR                                  運算時。

INTERSECTION:對兩個結果進行比較,只返回兩個結果集中都存在的記錄。

MINUS:除了在第二個結果集中出現的記錄外,返回第一個結果集中的所有記錄。

UNION-ALL:對兩個結果集進行合并,並返回兩個結果集中的所有記錄。

UNION:與UNION-ALL相同,但是它不返回重複記錄。

VIEW:訪問一個視圖定義或或建立一個暫存資料表用於存放結果集。

 

6、分區操作

(1)PARTITION

SINGLE:訪問單個分區。

ITERATOR:訪問多個分區。

ALL:訪問所有分區。

INLIST:基於IN列表中的值來訪問分區。

 

7、匯總操作

(1)COUNT:使用COUNT函數進計算。

STOPKEY:計算結果中的記錄,當達到一定數量時,就停止計算。這通常發生在使用了WHERE子句且指定了ROWNUM,                         如:WHERE ROWNUM <= 10。

(2)BUFFER SORT:對臨時結果集做一次內在排序。

(3)HASH GROUP BY:使用散列進行分組操作。

(4)INLIST ITERATOR:對IN中的每一個值都實現一次子操作。

(5)SORT

GROUP BY:為了滿足GROUP BY而對結果集進行排序。

AGGREGATE:當在已分組好的資料上使用分組函數時,會出現此操作。

JOIN:了進行合并串連而對記錄進行排序。

UNIQUE:排除重複記錄的排序操作,通常是使用DISTINCT子句。

GROUP BY:為滿足GROUP BY子句,對結果集進行排序分組。

 

8、其他動作

(1)FOR UPDATE:使用了FOR UPDATE子句。

(2)COLLECTION ITERATOR:使用了表函數提取記錄。

(3)FAST DUAL:訪問DUAL表。

(4)FILTER:從結果集中排除掉不匹配選取條件的記錄。

(5)REMOTE:通過資料庫連接,訪問一個外部的資料庫。

(6)FIRST ROW:擷取查詢的第一條記錄。

(7)SEQUENCE:使用了Oracle序列。

(8)LOAD AS SELECT:使用SELECT進行直接路徑的INSERT操作。

(9)FIXED TABLE:訪問固定的(X$/V$)表。

(10)FIXED INDEX:訪問固定的索引。

(11)WINDOW BUFFER:支援分析函數的內部操作。

 

 


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.