概要
Oracleで実行計画を取得する方法をまとめました。
※普段は、SQLチューニング依頼を受けた場合にはDBMS_XPLAN.DISPLAY_CURSORを使用しています。
方法
- EXPLAIN PLAN+DBMS_XPLAN
- AUTOTRACE(SQL*Plus)
- DBMS_XPLANパッケージ(CURSOR/AWR)
- 動的パフォーマンスビュー(V$SQL_PLAN/V$SQL/V$SQL_TEXT)
- SQLトレース+tkprof
- リアルタイムSQL監視
上記5にはさらに以下があります。
- SQL_TRACE(11gR1-)
- 10046トレース
- DBMS_MONITOR
取得方法まとめ
方法 | 取得工数(手間) | システム負荷 | 実行統計 | Actual値の取得 | ライセンス要否 | |
---|---|---|---|---|---|---|
EXPLAIN PLAN | ○ | ○ | × | Estimate | 不要 | |
AUTOTRACE | ○ | ○ | ○ | Actual | 不要 | |
DBMS_XPLAN | ○ | ○ | ○ | Actual | 要(※Diagnostic Packライセンス) | |
V$ビュー | ○ | ○ | × | Actual | 不要 | |
SQLトレース | SQL_TRACE(11gR1-) | △ | △ | ○ | Actual | 不要 |
EVENT10046 | △ | △ | ○ | Actual | 不要 | |
DBMS_MONITOR | △ | △ | ○ | Actual | 要(※Tuning Packライセンス) | |
リアルタイムSQL監視 | ○ | ○ | ○ | Actual | 要(※Tuning Packライセンス) |
補足
Actual(実行):
過去、SQL実行で実際に使用された実行計画・実行統計を表示
Estimate(見積):
Oracleが予測で見積もった実行計画・実行統計を表示。
そのため、実行時の実行計画と異なる可能性あり
なお、DBMS_XPLANは、利用方法によってEstimate/Actualが異なります。
パターン1.EXPLAINとの併用 実行計画:Estimate/実行統計:Actual
パターン2.SQL実行後の取得 実行計画:Actual/実行統計:Estimate
パターン3.STATISTICS_LEVEL=ALL+format句にALLSTATS LAST
実行計画:Actual/実行統計:Estimate&Actual
その他の取得方法
- STASPACK/AWR SQLレポート
- SQLHC
- SQLTXPLAIN(SQLT)
- EVENT10053→※CBOトレースですが、実行計画情報も含まれます
...他多数
メリット/デメリット
No | 取得方法 | メリット/デメリット |
---|---|---|
1 | EXPLAIN+DBMS_XPLAN | <メリット>
<デメリット>
|
2 | AUTOTRACE | <メリット>
|
3 | DBMS_XPLAN | <メリット>
<デメリット>
|
4 | V$ビュー | <メリット>
|
5 | SQLトレース | <メリット>
<デメリット>
|
6 | リアルタイムSQL監視 | <メリット>
<デメリット>
|
参考資料
--V$ビュー
http://odakeiji.blog33.fc2.com/blog-entry-23.html
--リアルタイムSQL監視
http://www.oracle.com/technetwork/jp/ondemand/db-basic/d-16-ssqltuning-1448439-ja.pdf
--その他
Oracle SQL Tuning with Oracle SQLTXPLAIN: Oracle Database 12c Edition
Oracle SQL Tuning with Oracle SQLTXPLAIN: Oracle Database 12c Edition
- 作者: Stelios Charalambides
- 出版社/メーカー: Apress
- 発売日: 2017/04/05
- メディア: Kindle版
- この商品を含むブログを見る
--全体
Expert Oracle SQL
Expert Oracle SQL: Optimization, Deployment, and Statistics
- 作者: Tony Hasler
- 出版社/メーカー: Apress
- 発売日: 2014/06/24
- メディア: ペーパーバック
- この商品を含むブログを見る
Cost-Based Oracle Fundamentals
Cost-Based Oracle Fundamentals (Expert's Voice in Oracle)
- 作者: Jonathan Lewis
- 出版社/メーカー: Apress
- 発売日: 2007/01/24
- メディア: ペーパーバック
- クリック: 1回
- この商品を含むブログ (1件) を見る
Pro Oracle SQL, Second Edition
Pro Oracle SQL (Expert's Voice in Oracle)
- 作者: Karen Morton,Kerry Osborne,Robyn Sands,Riyaj Shamsudeen,Jared Still
- 出版社/メーカー: Apress
- 発売日: 2013/10/29
- メディア: ペーパーバック
- この商品を含むブログを見る
Troubleshooting Oracle Performance, Second Edition
Troubleshooting Oracle Performance
- 作者: Christian Antognini
- 出版社/メーカー: Apress
- 発売日: 2014/06/02
- メディア: ペーパーバック
- この商品を含むブログを見る
Oracle® Database SQLチューニング・ガイド 12cリリース2 (12.2)
http://www.doppo1.net/oracle/tuning/explain-plan.html#2
https://www.ashisuto.co.jp/db_blog/article/20160630_sqltrace.html
http://d.hatena.ne.jp/yohei-a/20160605/1465079548
http://www.intellilink.co.jp/article/column/ora-report20150507.html