はじめに
Oracleに付属しているtkprofユーティリティを使うと、トレースログを整形し、見やすくすることができます。
この記事では、トレースログの出力からtkprofによる変換までの手順について書いています。
新・門外不出のOracle現場ワザ エキスパートが明かす運用・管理の極意 (DB Selection)
posted with amazlet at 13.04.21
小田 圭二 大塚 信男 五十嵐 建平 谷 敦雄 宮崎 博之 神田 達成 村方 仁
翔泳社
売り上げランキング: 139,072
翔泳社
売り上げランキング: 139,072
トレースログを出力する
Oracle DBでトレースログを出力するには、sysユーザで以下のコマンドを実行します。
conn sys/oracle as sysdba ALTER SYSTEM SET SQL_TRACE = TRUE;
トレースログの出力先は、以下のコマンドで調べることができます。
show parameter user_dump_dest
トレースログをそのまま開いた場合
SQL_TRACE = TRUEの状態で、SQL*Plusから任意のSQLを実行してみると、xxx.trcというファイルが出力されます。このファイルをテキストエディタで開いてみると、以下のようになります。
なにやらたくさんの情報が出力されていますが、実行したクエリ以外は、よくわかりませんね。
トレースログをtkprofで解析する
続いて、tkprofユーティリティを使って、トレースログファイルを整形してみます。コマンドプロンプトを起動して、以下のようにtkprofコマンドを実行します。
tkprof .trcファイル名 解析結果のファイル名
たとえば、デスクトップのworkフォルダにコピーしたトレースログファイルをテキストファイルに変換する場合は、以下のようにします。
cd C:\Users\Administrator\Desktop\work tkprof xe_ora_3116.trc xe_ora_3116.txt
解析されたテキストファイルを開くと、記事冒頭のキャプチャのように見やすい形で出力されます。
トレースログから得られる情報
トレースログからは、以下のような情報を確認することができます。
- SQLのパース、実行、フェッチの回数
- CPU処理時間や経過時間
- ディスク読み込みとキャッシュ読み込みのブロック数
- 処理したレコード数
- 実行計画