ENABLE_OPT_TRACEプロシージャは、オプティマイザーのフルリンクトレースを有効にするために使用されます。有効になると、現在のセッションで生成される各プランの生成過程が追跡され、PL/SQLのステートメントのプラン生成過程も含まれます。そして、SQLの実行ノードログディレクトリにトレースファイルが生成されます。
構文
DEFAULT_INENTIFIER constant VARCHAR2(20) := '';
DEFAULT_LEVEL constant INT := 1;
DBMS_XPLAN.ENABLE_OPT_TRACE(
sql_id IN VARCHAR2 DEFAULT '',
identifier IN VARCHAR2 DEFAULT DEFAULT_INENTIFIER,
level IN INT DEFAULT DEFAULT_LEVEL
);
パラメータ説明
パラメータ |
説明 |
|---|---|
| sql_id | トレースが必要なSQLをマークするために使用されます。例えば、現在のテストでPL/SQLプログラムを実行し、PL/SQL関数内の特定のSQLのみをトレースしたい場合、sql_idを設定してマークできます。sql_idを設定すると、特定のSQLのみがトレースされ、設定しない場合はすべてのSQLがトレースされます。 |
| identifier | トレースファイルの拡張子をマークするために使用され、ユーザーが自身のトレースファイルを簡単に見つけられるようにします。 |
| level | トレースのレベルを設定するために使用されます。
注意: levelはデータベースキーワードであるため、Oracleテナントでは二重引用符(")で囲み、MySQLテナントではバッククォート``で囲む必要があります。 |
例
現在のセッションのオプティマイザー・トレース機能を有効にします。
/* データベースに接続し、現在のセッションのオプティマイザー・トレース機能を有効にする */
obclient> CALL DBMS_XPLAN.ENABLE_OPT_TRACE();
Query OK, 0 rows affected
/* トレースログのLevelとログファイルの拡張子を設定する */
obclient> CALL DBMS_XPLAN.SET_OPT_TRACE_PARAMETER(identifier=>'trace_test', `level`=>3);
Query OK, 0 rows affected
/* クエリを実行する */
obclient> SELECT * FROM t1;
Empty set
/* OBServerノードのログディレクトリで、trace_testを拡張子とするトレースログを確認する */
vi /data/1/observer/log/optimizer_trace_BkkGn1_trace_test.trac
/* 現在のセッションのオプティマイザー・トレース機能を無効にする */
obclient> CALL DBMS_XPLAN.DISABLE_OPT_TRACE();;
Query OK, 0 rows affected