文章詳情頁
[Oracle]用函數格式化EXPLAIN PLAN
瀏覽:107日期:2023-11-22 10:32:04
EXPLAIN PLAN命令的輸出結果是解決SQL效率低下問題的最重要的診斷工具之一。此命令加載一個工作表格(默認名稱為PLAN_TABLE),表格中帶有Oracle優化器為SQL語句計算的執行計劃步驟。例如: EXPLAIN PLAN FOR SELECT empno, ename FROM emp WHERE ename LIKE 'S%'; 由于PLAN_TABLE中的行形成了一個等級,對其進行查詢需要應用SELECT語句中的兩個復雜子語句——START WITH與CONNECT BY。第一次在Oracle 9i中出現并在10g中得到擴充的DBMS_XPLAN使格式化及顯示執行計劃更為輕易。 DBMS_XPLAN.DISPLAY是一個表格標值函數,它顯示PLAN_TABLE的內容。與常規的純量函數SUBSTR或總計函數SUM不同的是,表格函數返回一個完整的行集合(rowset)。它們用在SELECT語句的FROM子語句中,前面必須加上TABLE這個詞。如: SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 列表A顯示的是上述EXPLAIN PLAN語句的結果,并由DBMS_XPLAN.DISPLAY格式化。 值得注重的是,DBMS_XPLAN還能從存儲在系統全局區(System Global Area, SGA)內的指針顯示“實時”執行計劃。列表B顯示的是由用戶SCOTT執行的同一SQL語句。通過查看V$SESSION視圖,你可以找到執行SCOTT任務的最后一個SQL ID。這反過來又可輸入到DBMS_XPLAN.DISPLAY_CURSOR中,獲得指針所使用的執行計劃。 最后,DBMS_XPLAN.DISPLAY_AWR函數可用來查尋Oracle 10g的自動負荷信息庫(Automatic Workload Repository, AWR)獲得的歷史SQL語句,并顯示它的執行計劃。它顯示一個你可以訪問的含七天歷史記錄的滾動窗口。 所有這三個函數都是協調SQL語句的強大工具。 Bob Watkins(OCP、MCDBA、MCSE、MCT)是一個有25年經驗的計算機專業人士,從事過技術培訓師、顧問與數據庫治理員等職 。
排行榜
