方法一:
比如要查看解釋計划的SQL是:select * from hy_emp
那么在輸入窗口輸入:
EXPLAIN PLAN FOR select * from hy_emp
之后執行,輸出窗口會出現 Explained. 字樣,如下圖:
之后執行select * from table(dbms_xplan.display); 如下:
總結步驟如下:
執行:
EXPLAIN PLAN FOR
SELECT * from * where....
再執行:
select * from table(dbms_xplan.display)
方法二:
這種方式更簡單,把SQL框起來點按鈕就行了。
附:Oracle Explain Plan中各種信息的含義:
- Plan hash value 是該語句的哈希值。SQL 語句和執行計划會存儲在庫緩存中,哈希值相同的語句可以重用已有的執行計划,也就是軟解析;
- Id 是一個序號,但不代表執行的順序。執行的順序按照縮進來判斷,縮進越多的越先執行,同樣縮進的從上至下執行。Id 前面的星號表示使用了謂詞判斷,參考下面的 Predicate Information;
- Operation 表示當前的操作,也就是如何訪問表的數據、如何實現表的連接、如何進行排序操作等;
- Name 顯示了訪問的表名、索引名或者子查詢等,前提是當前操作涉及到了這些對象;
- Rows 是 Oracle 估計的當前操作返回的行數,也叫基數(Cardinality);
- Bytes 是 Oracle 估計的當前操作涉及的數據量
- Cost (%CPU) 是 Oracle 計算執行該操作所需的代價;
- Time 是 Oracle 估計執行該操作所需的時間;
- Predicate Information 顯示與 Id 相關的謂詞信息。access 是訪問條件,影響到數據的訪問方式(掃描表還是通過索引);filter 是過濾條件,獲取數據后根據該條件進行過濾。
參考:https://database.51cto.com/art/201912/608403.htm
--END-- 2019-12-31 13:33