GAGA LIFE.

DBAブログ

Oracle EVENT 10053(CBOトレース)の出力内容について

概要

10053のトレースファイルの内容はあまり文書化されておらず、
各リリース毎に変更されています。
今回は、バージョン12.2の環境で取得したトレース内容を確認しています。

出力の概要

トレースには以下のようなセクションが表示されています。

セクション 説明
QUERY BLOCK 問合せに含まれる表の問合せブロックおよびオブジェクト識別子(DBA_OBJECTS.OBJECT_ID)
Predicate Move-Around (PM) 述語移動を使うか否かの詳細
Automatic degree of parallelism (ADOP) 自動並列度に関する記述(11.2~)
Current SQL Statement for this session (sql_id=XXXXXXX) 解析したSQL文の表示
Legend トレースの中で使用されている略語の説明。
「Predicate Move-Around (PM)」を確認する際に使用
PARAMETERS USED BY THE OPTIMIZER オプティマイザの動作に影響を与えるパラメータ(SQL解析時点)の値のリスト
・PARAMETERS WITH ALTERED VALUES:変更された値
・PARAMETERS WITH DEFAULT VALUES:デフォルト値
・Bug Fix Control Environment:
   _fix_controlパラメータで制御可能なBug Fixの状況
・PARAMETERS IN OPT_PARAM HINT:使用されたヒント
Column Usage Monitoring is クエリテーブルの列の使用情報
Query transformations (QT) オプティマイザによって考慮されたクエリ変換の情報
・Final query after transformations:問合せ変換された後のSQL文
Peeked values of the binds in SQL statement 実行計画を生成するために確認したバインド変数に関する情報
QUERY BLOCK TEXT 解析されたSQLテキスト
SYSTEM STATISTICS INFORMATION システム統計に関する情報
BASE STATISTICAL INFORMATION SQLで参照しているテーブル・カラム・インデックスの統計情報を出力
SINGLE TABLE ACCESS PATH SQLで参照している各表へのアクセス・パスとして選択可能なものをコスト計算し、最もコストの低いアクセス・パスを選択
OPTIMIZER STATISTICS AND COMPUTATIONS
GENERAL PLANS
結合順序を変更しながら、可能な結合操作ごとにそれぞれの結合順序を適用した時のコストを計算
・Outer table:外部表
・Inner table:内部表
・Final cost:最終的な最適化されたプランのコスト
・Best join order:選択された結合方法
Plan Table(Explain Plan Dump) 解析の結果として最終的に選択された実行計画とPredicate Information
Content of other_xml column クエリのアウトラインヒントの情報
Optimizer state dump 最後に再度パラメータ一覧を表示

参考資料

Cost-Based Oracle Fundamentals
Secrets of the Oracle Database
Expert Oracle Practices
Oracle SQL Tuning with Oracle SQLTXPLAIN: Oracle Database 12c Edition, Second Edition
Expert Oracle RAC 12c
http://www.centrexcc.com/A%20Look%20under%20the%20Hood%20of%20CBO%20-%20the%2010053%20Event.pdf