DBMS_XPLAN是Oracle提供的一個用于查看SQL計劃,包括執行計劃和解釋計劃的包;在以前查看SQL執行計劃的時候,我都是使用set autotrace命令,不過現在看來,DBMS_XPLAN包給出了更加簡化的獲取和顯示計劃的方式。
這5個函數分別對應不同的顯示計劃的方式,DBMS_XPLAN包不僅可以獲取解釋計劃,它還可以用來輸出存儲在AWR,SQL調試集,緩存的SQL游標,以及SQL基線中的語句計劃,實現如上的功能,通常會用到一下5個方法:
1.DISPLAY
2.DISPLAY_AWR
3.DISPLAY_CURSOR
4.DISPLAY_PLAN
5.DISPLAY_SQL_PLAN_BASELINE
6.DISPLAY_SQLSET
下面將重點討論關于DBMS_XPLAN包在解釋計劃和執行計劃上的應用。
來看一個經常使用的查看某條語句的解釋計劃示例:
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 532 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 14 | 532 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------
8 rows selected.
-- 對應autotrace實現
SQL> set autotrace traceonly explain
上例中使用了dbms_xplan.display方法來顯示PLAN_TABLE中保存的解釋計劃,如果想要顯示執行計劃,就需要使用到DMBS_XPLAN.DISPLAY_CURSOR方法了,DMBS_XPLAN.DISPLAY_CURSOR調用簽名:
sql_id表示存儲在cursor cache中的SQL語句的id,child_number用于指示緩存sql語句計劃的子id,format參數用于控制包含在輸出中的信息類型,官檔的參數如下:
1.BASIC: 顯示最少的信息,只包括操作類型,ID名稱和選項。
2.TYPICAL: 默認值,顯示相關信息以及某些附加的顯示選項,如分區和并發使用等。
3.SERIAL: 與TYPICAL類型相似,區別是它不包括并發的信息,即使是并行執行的計劃。
4.ALL: 顯示最多的信息,包含了TYPICAL的全部以及更多的附加信息,如別名和遠程調用等。
除了以上的基本的四種輸出格式外,format還有一些附加的選項可用于定制化輸出行為,使用中可以通過逗號和空格分隔來聲明多個關鍵字,同時可以使用”+”和”-”符號來包含或排除相應的顯示元素,這些附加的選項在官檔中也有記載:
1.ROWS 主站蜘蛛池模板: 桂阳县| 五常市| 略阳县| 大冶市| 景东| 全州县| 龙游县| 小金县| 东源县| 固原市| 沂源县| 浦东新区| 罗定市| 天镇县| 铁岭县| 板桥市| 股票| 饶平县| 巴青县| 濮阳市| 镇沅| 平定县| 西藏| 时尚| 长春市| 安阳市| 遵义市| 牟定县| 西和县| 晋中市| 咸阳市| 沐川县| 鲁山县| 乳源| 通江县| 光泽县| 浦县| 信丰县| 浦城县| 嵊泗县| 孙吴县|