国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle中使用DBMS_XPLAN處理執行計劃詳解

2020-07-26 14:19:17
字體:
來源:轉載
供稿:網友

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包在解釋計劃和執行計劃上的應用。

來看一個經常使用的查看某條語句的解釋計劃示例:

復制代碼 代碼如下:

SQL> explain plan for select * from scott.emp;

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調用簽名:

復制代碼 代碼如下:

DBMS_XPLAN.DISPLAY_CURSOR(
   sql_id        IN  VARCHAR2  DEFAULT  NULL,
   child_number  IN  NUMBER    DEFAULT  NULL,
   format        IN  VARCHAR2  DEFAULT  'TYPICAL');

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

主站蜘蛛池模板: 桂阳县| 五常市| 略阳县| 大冶市| 景东| 全州县| 龙游县| 小金县| 东源县| 固原市| 沂源县| 浦东新区| 罗定市| 天镇县| 铁岭县| 板桥市| 股票| 饶平县| 巴青县| 濮阳市| 镇沅| 平定县| 西藏| 时尚| 长春市| 安阳市| 遵义市| 牟定县| 西和县| 晋中市| 咸阳市| 沐川县| 鲁山县| 乳源| 通江县| 光泽县| 浦县| 信丰县| 浦城县| 嵊泗县| 孙吴县|