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