檢視sql執行計劃方法彙總
方法一、檢視計劃表生成執行計劃
explain plan for select * from SYS_USER_UNIT;
select * from table(dbms_xplan.display);
explain plan for 後面為查詢語句
SQL> explain plan for select * from SYS_USER_UNIT;
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 3749126911
--------------------------------------------------------------------------------
---
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
|
--------------------------------------------------------------------------------
---
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 19 | 1292 | 3 (0)| 00:00:0
1 |
| 1 | TABLE ACCESS FULL| SYS_USER_UNIT | 19 | 1292 | 3 (0)| 00:00:0
1 |
--------------------------------------------------------------------------------
---
8 rows selected.
方法二、檢視動態效能檢視v$sql_plan,檢視執行計劃
select * from table(dbms_xplan.display_cursor('&sql_id',&child));
SQL> select * from table(dbms_xplan.display_cursor('&sql_id',&child)); Enter value for sql_id: aq8yqxyyb40nn Enter value for child: 0 old 1: select * from table(dbms_xplan.display_cursor('&sql_id',&child)) new 1: select * from table(dbms_xplan.display_cursor('aq8yqxyyb40nn',0)) PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------- SQL_ID aq8yqxyyb40nn, child number 0 ------------------------------------- update sys.job$ set this_date=:1 where job=:2 Plan hash value: 2981428395 --------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| --------------------------------------------------------------------- | 0 | UPDATE STATEMENT | | | | 1 (100)| | 1 | UPDATE | JOB$ | | | | PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------- |* 2 | INDEX UNIQUE SCAN| I_JOB_JOB | 1 | 5 | 0 (0)| --------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("JOB"=:2) 19 rows selected. SQL> |
方法三、檢視awr資料庫中儲存的執行計劃
select * from table(dbms_xplan.display_awr('&sql_id'));
SQL> select * from table(dbms_xplan.display_awr('&sql_id')); Enter value for sql_id: aq8yqxyyb40nn old 1: select * from table(dbms_xplan.display_awr('&sql_id')) new 1: select * from table(dbms_xplan.display_awr('aq8yqxyyb40nn')) PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------- SQL_ID aq8yqxyyb40nn -------------------- update sys.job$ set this_date=:1 where job=:2 Plan hash value: 2981428395 --------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| --------------------------------------------------------------------- | 0 | UPDATE STATEMENT | | | | 1 (100)| | 1 | UPDATE | JOB$ | | | | PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------- | 2 | INDEX UNIQUE SCAN| I_JOB_JOB | 1 | 5 | 0 (0)| --------------------------------------------------------------------- 14 rows selected. SQL> |
方法四、sql跟蹤
序號 |
命令 |
解釋 |
1 |
SET AUTOTRACE OFF |
此為預設值,即關閉Autotrace |
2 |
SET AUTOTRACE ON |
產生結果集和解釋計劃並列出統計 |
3 |
SET AUTOTRACE ON EXPLAIN |
顯示結果集和解釋計劃不顯示統計 |
4 |
SETAUTOTRACE TRACEONLY |
顯示解釋計劃和統計,儘管執行該語句但您將看不到結果集 |
5 |
SET AUTOTRACE TRACEONLY STATISTICS |
只顯示統計 |
方法五、10046和10053事件
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27571661/viewspace-1783116/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢視SQL的執行計劃方法SQL
- 檢視sql執行計劃SQL
- 多種方法檢視Oracle SQL執行計劃OracleSQL
- 檢視Oracle SQL執行計劃方法比較、分析OracleSQL
- 檢視執行計劃的方法
- 如何檢視SQL的執行計劃SQL
- 使用PL/SQL檢視執行計劃SQL
- Oracle 檢視SQL的執行計劃OracleSQL
- 檢視sql執行計劃--set autotraceSQL
- 達夢資料庫SQL執行計劃檢視方法資料庫SQL
- 檢視SQL執行計劃的幾種常用方法YQSQL
- oracle檢視執行計劃的方法Oracle
- Oracle檢視執行計劃常用方法Oracle
- MySQL 5.7 檢視理解SQL執行計劃MySql
- 【Explain Plan】檢視SQL的執行計劃AISQL
- 檢視執行計劃方法總結之一:explain plan命令AI
- 檢視執行計劃
- 根據SQL_ID檢視執行計劃SQL
- 檢視sql執行計劃--set autotrace [final]SQL
- oracle10g 檢視SQL執行計劃OracleSQL
- 透過查詢檢視sql執行計劃SQL
- Oracle檢視正在執行的SQL以及執行計劃分析OracleSQL
- 檢視執行計劃(一)
- 檢視執行計劃(二)
- SQLPLUS檢視oracle sql執行計劃命令SQLOracle
- 檢視sql 執行計劃的歷史變更SQL
- 【檢視】使用V$SQL_PLAN檢視獲取曾經執行過的SQL語句執行計劃SQL
- 檢視SQL執行計劃的方法(有待於進一步補充)SQL
- Oracle檢視執行計劃(五)Oracle
- Oracle檢視執行計劃(六)Oracle
- Oracle檢視執行計劃(一)Oracle
- Oracle檢視執行計劃(二)Oracle
- Oracle檢視執行計劃(三)Oracle
- Oracle檢視執行計劃(四)Oracle
- 檢視歷史執行計劃
- ORACLE執行計劃的檢視Oracle
- oracle如何檢視執行計劃Oracle
- 檢視oracle執行計劃 - 轉Oracle