EXPLAIN PLAN FOR SELECT t1.name, t2.grade FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.id WHERE t1.id = 704; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
| 欄位 | 含義 |
|---|---|
| Operation | 操作類型 (TABLE ACCESS, INDEX, JOIN 等) |
| Options | 操作細節 (FULL, BY INDEX ROWID, RANGE SCAN 等) |
| Object_Name | 涉及物件名稱 |
| Rows (Cardinality) | 預估行數,核心調優指標 |
| Cost | 相對成本值 |
| Predicate Information | 存取/過濾謂語,* 號標示關鍵步驟 |
DESC PLAN_TABLE; -- 關鍵欄位:STATEMENT_ID, PLAN_ID, TIMESTAMP, OPERATION, OPTIONS, -- OBJECT_NAME, ID, PARENT_ID, DEPTH, POSITION, COST, CARDINALITY, BYTES, -- ACCESS_PREDICATES, FILTER_PREDICATES, PROJECTION
SELECT id, parent_id,
LPAD(' ', LEVEL) || operation || ' ' || options || ' ' || object_name AS operation_tree
FROM plan_table
START WITH id = 0
CONNECT BY PRIOR id = parent_id;
ID PARENT_ID OPERATION_TREE -- --------- ------------------------------------------- 0 SELECT STATEMENT 1 0 HASH JOIN OUTER 2 1 TABLE ACCESS BY INDEX ROWID TABLE1 3 2 INDEX RANGE SCAN INDEX_TABLE1_ID 4 1 TABLE ACCESS FULL TABLE2
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('sql_id', child_number, 'ALLSTATS LAST'));
顯示實際執行行數 (A-Rows)、啟動次數、時間、記憶體等運行時統計,比 EXPLAIN PLAN 更精準。