2007.12.11

ORACLEのトレース実行

現在、ASP.NETとORACLE10GR2での開発で、単体テスト工程を行っております。
という事で今回はASP.NET等アプリケーションを操作(テスト)していて、
おや?と思った場合に一体ORACLEにどのようなSQLが投げられたのかを
トレースファイルを作成して確認する方法です。

トレースファイルの出力先(USER_DUMP_DEST)を確認し、必要に応じて変更する。
キャッチしたいセッションのSIDとSERIALを取得する。

SELECT SID
, STATUS
, USERNAME
, SCHEMANAME
, OSUSER
, MACHINE
, PROGRAM
, SERIAL#
FROM V$SESSION
WHERE USERNAME = 'HOGEHOGE'
ORDER BY SID;

取得したSIDとシリアル番号にて

EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID, シリアル番号, TRUE); -- トレース設定

~~ アプリケーションを操作 ~~

EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID, シリアル番号, FALSE); -- トレース解除

作成されたファイルを開くとトレース情報を見る事が出来ます。

photo
admin