現在、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); -- トレース解除
作成されたファイルを開くとトレース情報を見る事が出来ます。