Oracle でトーレスの取得

Oracle でトレースを取得するには「セッション内のみ」と「DB全体」の2つの方法がある。

セッション内のみ

現行セッションでトレースを取る場合は、SQL*Plus 等で接続して以下のSQLを発行する。

 SQL> ALTER SESSION SET SQL_TRACE = TRUE;
 SQL> ALTER SESSION SET TIMED_STATISTICS = TRUE;

別のセッションでトレースを取る場合は、以下のようにする。

 SQL> EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID, SERIAL#, TRUE);

どちらもトレース取得を停止する場合は、FALSE をセットする。

DB全体

DB全体でトレースを取るには、初期化パラメータファイル(init.ora)に設定を記述する。

 timed_statistics = true
 sql_trace = true

timed_statistics だけなら動的変更が可能。sql_trace は動的変更が不可能なので、データベースを再起動する必要がある。
なお、DB全体でトレースを ON にするとパフォーマンスが落ちるので注意する事。