標籤:
1.用explain plan for來擷取執行計畫
explain plan for <sql>;select * from table(dbms_xplan.display());
結果如下:
---------------------------------------------------------------------------------------------------------------------
優點
- 不需要真實執行sql,方便快捷
缺點
- 這裡的執行計畫並不是真實的執行計畫
- 不能擷取運行時的相關統計資訊(產生多少邏輯讀,多少次遞迴調用,多少次物理讀的情況)
- 無法判斷表被訪問了多少次
- 無法判斷處理了多少行資料
---------------------------------------------------------------------------------------------------------------------
2.用autotrace 來擷取執行計畫
SET AUTOTRACE OFF --此為預設值,即關閉Autotrace SET AUTOTRACE ON EXPLAIN --只顯示執行計畫和執行結果SET AUTOTRACE ON STATISTICS --只顯示執行的統計資訊和執行結果SET AUTOTRACE ON --包含執行計畫,統計資訊和執行結果SET AUTOTRACE TRACEONLY --只顯示執行計畫
使用 SET AUTOTRACE ON EXPLAIN 時,顯示執行結果,和執行計畫,
使用 SET AUTOTRACE ON STATISTICS 時,顯示執行結果,和統計資訊,
使用 SET AUTOTRACE ON 時,顯示執行結果,執行計畫和統計資訊,
使用 SET AUTOTRACE TRACEONLY 時,顯示執行計畫和統計資訊
---------------------------------------------------------------------------------------------------------------------
優點
- 可以輸出運行時的相關統計資訊(產生多少邏輯讀,多少次遞迴調用,多少次物理讀的情況);
缺點
- 擷取的不是真實的執行計畫
- 無法看到表被訪問了多少次。
---------------------------------------------------------------------------------------------------------------------
3.
oracle 執行計畫的擷取方法