dbms_xplan 函式包

531968912發表於2016-09-14
dbms_xplan 函式包
DISPLAY函式使用者顯示儲存在PLAN_TABLE中的執行計劃。此外,如果從檢視v$sql_plan_statistics_all 可以獲得該執行計劃的相關統計資料。DISPLAY可以格式化輸出這些資料
引數描述:
TABLE_NAME:儲存查詢計劃的表名(不區分大小寫),預設值為PLAN_TABLE
STATEMENT_ID:SQL語句的ID。在PLAN_TABLE中,每條語句的執行計劃都有一個唯一的ID來標識。這個ID可以在執行EXPLAIN PLAN命令時,透過SET STATEMENT_ID子句來指定。如果輸入為null,則會獲取最近一條被解釋的語句。
eg:
FORMAT: 輸出格式有幾種 BASIC,TYPICAL,SERIAL,ALL格式
explain plan for select count(*) from seashell.paymentorder p, seashell.deal d where p.sequenceid = d.orderseqid and d.dealtype = 18 and p.ordercode = 930 and p.lastupdatetime >= to_date(:1,'yyyy-mm-dd hh24:mi:ss') and p.lastupdatetime<to_date(:2,'yyyy-mm-dd hh24:mi:ss');


select * from table(dbms_xplan.display(null,null,'ALL'));


DISPLAY_CURSOR函式可以顯示記憶體中的一個或者多個遊標的執行計劃。
引數描述:
SQL_ID:所顯示執行計劃的SQL語句的SQLID,如果沒有指定SQL_ID(指定為NULL),則預設會顯示當前會話中最後一條執行的sql語句
CURSOR_CHILD_NO:語句的子游標序列號:我們知道,受執行環境的影響,一條sql語句可能會引數多個版本的子游標,每個子游標都會與一個執行計劃相對應(多個子遊標也可能對映同一個執行計劃)。透過CURSOR_CHILD_NO可以限制僅顯示某一個子遊標的執行計劃,如果不指定該引數,則會顯示該語句的所有的子游標的執行計劃。
FORMAT:格式化控制字串。ADVANCED:高階格式。高階格式出了會輸出完全格式中的所有內容外,還會視情況輸出繫結變數窺視資訊和計劃概要資訊。
select * from table(dbms_xplan.display_cursor('ax0fpkfmr5ucx',null,'advanced'));


DISPLAY_AWR函式顯示儲存在AWR歷史資料的執行計劃
SQL_ID:所顯示執行計劃的SQL語句的SQLID。該引數必須指定為非空值,沒有預設值。
PLAN_HASH_VALUE:執行計劃的HASH值。每個執行計劃都有一個HASH值。透過該值,可以顯示SQL語句特定的執行計劃。
DB_ID。執行哪個資料庫的執行計劃。預設為本地資料庫ID
select * from table(dbms_xplan.display_awr('ax0fpkfmr5ucx',null,'advanced'));

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2125000/,如需轉載,請註明出處,否則將追究法律責任。

相關文章