用函數格式化EXPLAIN PLAN

來源:互聯網
上載者:User

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年經驗的電腦專業人士,從事過技術培訓師、顧問與資料庫管理員等職 。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。