DBMS_XPLAN的不同資料來源呼叫的不同方法
-
方法 使用 資料來源
-
display explain 計劃表
-
display_cursor real plan 庫快取中的遊標快取
-
display_awr history awr倉庫基表wrh$sql_play
-
display_sqlset sql tuning set sql set檢視
-
一.dbms_xplan.display
-
display函式返回儲存在計劃表中的執行計劃,返回值為集合dbms_xplan_type_table例項。
-
注意:使用前把sqlplus的linesize引數的值調整到至少120.
-
語法:
-
select * from table(dbms_xplan.display('table_name','statement_id','format','filter_preds')) ;
-
引數:
-
1.table_name 指定計劃表的名字,預設為plan_table
-
2.statement_id 指定sql的語句的名字,當sql語句explain plan執行時,此引數是可選的。預設為null,在使用預設值的情況下,
-
將顯示最近插入計劃表中的執行變化(如果沒有指定filter_preds的引數)
-
3.format 指定輸出內容,除了基本的basic,typical,serial,all和advanced,為了更好地控制,還有一些額外的修飾符可以新增在後面(alias,bytes等)
-
format引數的取值有:
-
3.1.basic 僅顯示很少的資訊,基本上只包含操作和操作的物件;
-
3.2.typical 顯示大部分相關物件,基本上包含了除別名,提綱和欄位投影外的所有物件
-
3.3.serial 和typical類似,只是並行操作沒有顯示出來
-
3.4.all 顯示除了提綱外的所有資訊
-
3.5.advanced 顯示所有資訊
-
4.filter_preds 指定在查詢計劃表時新增的一個約束,約束的內容是基於計劃表中某個欄位一個尋常的sql謂詞(比如statement_id='xxx'),預設值是null。
-
如果使用預設值,將顯示最近一條插入到計劃表中的執行計劃。
-
-
修飾符:
-
1.alias 控制包含查詢塊名和物件別名部分的顯示
-
2.bytes 控制執行計劃表中欄位bytes的顯示
-
3.cost 控制執行計劃表中欄位cost的顯示
-
4.note 控制包含注意資訊(note)部分的顯示
-
5.outline 控制包含提綱(outline)部分的顯示
-
6.parallel 控制並行處理資訊的顯示,尤其是執行計劃表中欄位TQ、IN-OUT、PQ Distrib的顯示
-
7.partition 控制分割槽資訊的顯示,尤其是執行計劃表中欄位pstart和pstop的顯示
-
8.peeked_binds 控制包含被窺視的繫結變數部分的顯示,既然sql語句explain plan的當前實現不執行繫結變數窺視,這部分內容就不會顯示
-
9.predicate 控制包含謂詞filter和access部分的顯示
-
10.projection 控制包含欄位投影資訊部分的顯示
-
11.remote 控制遠端執行的sql語句的顯示
-
12.rows 控制執行計劃表中欄位rows的顯示
-
舉例如下:
-
SQL> explain plan for select count(*) from t1 ;
-
SQL> select * from table(dbms_xplan.display(null,null,'basic')) ;
-
-
二、dbms_xplan.display_cursor
-
顯示儲存在庫快取中的執行計劃。
-
語法:
-
select * from table(dbms_xplan.display_cursor('sql_id',cursor_child_no,'format')) ;
-
引數:
-
1.sql_id 指定被返回執行計劃的sql語句的父遊標,預設值是null,如果使用了預設值,當前會話的最後一條sql語句的執行計劃將被返回
-
2.cursor_child_no 指定父遊標下子游標的序號,即指定被返回執行計劃的sql語句的子游標,預設值是0。如果設定為null,sql_id所指父遊標下所有子游標的執行計劃都被返回
-
3.format 指定要顯示哪些資訊,預設值為typical,可用引數和display相同,此外,如果執行統計開啟(引數statistics_level為all或sql語句使用了提示gather_plan_statistics),則可以顯示更多的資訊
-
foramt引數的修飾符
-
3.1 allstats 這是iostats+memstats的快捷方式
-
3.2 iostats 控制i/o統計的顯示
-
3.3 last 顯示所有執行計算過的統計,如果指定了這個值,只顯示最後一次執行的統計資訊
-
3.4 memstats 控制pga相關統計的顯示
-
3.5 runstats_last 和iostats last相同,只能用於10gR1
-
3.6 runstats_tot 和iostats相同,只能用於10gR1
-
舉例如下:
-
SQL> select count(*) from t1 ;
-
SQL> select sql_id,address,hash_value,plan_hash_value,child_number from v$sql where sql_text like 'select count(*) from t1%' and sql_text not like '%v$sql%';
-
SQL> select * from table(dbms_xplan.display_cursor('b73dhvfrh3ada',0,'advanced+allstats')) ;
-
-
三、dbms_xplan.display_awr
-
display_awr函式返回儲存在awr中的執行計劃,從10g起可用,返回值是集合dbms_xplan_type_table的一個例項
-
語法:
-
select * from table(dbms_xplan.display_awr('sql_id',plan_hash_value,db_id,'format')) ;
-
引數:
-
1.sql_id 指定被返回執行計劃的sql語句的父遊標,無預設值
-
2.plan_hash_value 指定被返回執行計劃的sql語句的雜湊值,預設值為null。如果使用了預設值,與sql_id引數指定的父遊標相關的所有執行計劃都會返回
-
3.db_id 指定被返回執行計劃的sql語句所在的資料庫,預設值為null,如果使用了預設值,則資料庫為當前庫
- 4.format 指定要顯示那些資訊,和display函式中的format有相同的函式,預設值為typical
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28878983/viewspace-2136047/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存過程呼叫不同資料庫的資料儲存過程資料庫
- GridView用資料來源控制元件和用DataTable作為資料來源的不同View控制元件
- 不同apk間共享資料的兩種方法APK
- 類的方法,函式,同一個package不同.py檔案,不同package不同.py檔案————呼叫問題函式Package
- 不同資料夾使用不同的Git使用者Git
- 同步整合不同系統、不同資料庫中資料的問題資料庫
- 管理不同時區的資料
- MVC3.0 不同view層,呼叫相同Controller方法,但引數不同MVCViewController
- 不同的default tablespace資料遷移
- 使用過載方法實現不同型別資料的計…型別
- 遊標+bulk collect into limit的不同方法查詢資料MIT
- 不同表結構或者不同資料型別之間的集合操作資料型別
- 在不同字符集的資料庫之間匯入資料的方法(轉)資料庫
- 選擇排序中交換資料的不同方式出現的不同結果排序
- 為雷達圖中不同系列的資料使用不同的顏色
- 不同Oracle資料庫之間的資料同步Oracle資料庫
- 在不同的資料庫中解析SQLServer資料資料庫SQLServer
- jsp連線sql server呼叫資料來源方法 (轉)JSSQLServer
- 伺服器資料遷移的方法-硬體不同如何遷移資料伺服器
- Tomcat 配置支援不同的域名訪問各自不同程式的配置方法Tomcat
- 資料庫不同故障的恢復方式資料庫
- 資料庫啟動的不同狀態資料庫
- 不同的default tablespace資料遷移(二)
- 修改不同IP的方法介紹!
- Java ArrayList 的不同排序方法Java排序
- 不同資料庫間傳遞資料的問題資料庫
- 讀資料湖倉03不同型別的資料型別
- day4-不同目錄間模組的呼叫
- IBM WorkFlow可以呼叫不同的應用(程式)IBM
- Solr資料不同步Solr
- C# 透過反射(Reflection)呼叫不同名泛型方法C#反射泛型
- .NET Framework開源給開發者帶來不同影響Framework
- 不同型別的資料有什麼作用型別
- Oracle OCP(17):管理不同時區的資料Oracle
- 將資料、程式碼、棧放入不同的段
- mysql 同時插入幾行不同的資料 。MySql
- 不同資料集有不同的Scaling law?而你可用一個壓縮演算法來預測它演算法
- Ubuntu 不同版本的下載 以及 換源Ubuntu