数か月前に、ブロックされたプロセスとデッドロックを追跡するための拡張イベントと、発生を追跡するためのファイル出力を追加しました。
時々、ログファイルを確認しましたが、拡張イベントが停止していることがわかりました。SSMSを介して「セッションを開始」すると、再びピックアップされ、期待どおりにログに記録されます。
これを24時間年中無休で確実に実行するにはどうすればよいですか?それはどこかで失敗している可能性があり、私が知らないエラーのログがありますか?
拡張イベントセッションはSTARTUP_STATE=OFF
で定義されているようです。そのため、SQL Serverを再起動したときに自動的に開始されません。
セッションをSTARTUP_STATE=ON
に変更して、常に実行されていることを確認します(手動で停止しない限り)。
ALTER EVENT SESSION [blocked_process] ON SERVER
WITH (STARTUP_STATE=ON);