私は現在、SQL Server 2008 で ETW を使用して、SQL ステートメントの実行を監視 (および最終的にログに記録) しています。私が監視しようとしているイベントは、ストアド プロシージャの実行、INSERT、UPDATE、DELETE、および... SELECT ステートメントです。
次のイベントで EVENT SESSION を作成することにより、SP、INSERT、UPDATE、および DELETE を監視できます。
- sqlserver.sp_statement_completed
- sqlserver.sp_statement_starting
- sqlserver.sql_statement_completed
- sqlserver.sql_statement_starting
また、イベントに実際の SQL ステートメントを追加するアクションを各イベントに含めます: sqlserver.sql_text
私のセッションは基本的に次のようになります。
CREATE EVENT SESSION SomeTestEventSession ON SERVER
ADD EVENT sqlserver.sp_statement_completed (ACTION (sqlserver.sql_text) WHERE sqlserver.database_id > 4),
(...)
データベースで単純なSELECT ステートメントを監視するには、上記のイベントにどのイベントを追加すればよいですか? これにより多くのアクティビティが作成されることは承知していますが、ステートメントを監視できるようになったら、いくつかのフィルタリング アクションを追加してログに記録されるイベントの実際の数を減らすことで、ビーストを微調整しようとします。
前もって感謝します!