影響を受けるテーブルの実行 SQL をキャプチャするトリガーの作成
問題:
特定のテーブルに対する不可解な更新のトラブルシューティングを行うには、原因となった実行された SQL を特定する必要があります。変化します。残念ながら、アプリケーションのビジネス ロジックは主にデータベース内に存在するため、これらの更新のソースを特定することが困難です。
目的:
テーブルにトリガーを作成します。影響を与える SQL ステートメントをログに記録するための質問。これにより、原因となっている SQL を特定できるようになります。
SQL Server を使用したアプローチ拡張イベント:
1.テスト用のデータベースのセットアップ:
問題のシナリオをシミュレートするために必要なテーブルとトリガーを含む単純なデータベースを作成します。
2.拡張イベント セッションの作成:
SQL Server 拡張イベントを使用して、テーブルに対して実行された SQL ステートメントをキャプチャします。これには、更新をシミュレートするために使用されるトリガーでフィルター処理するイベント セッションの作成が含まれます。
3. Proc1 プロシージャのトリガー:
Proc1 を実行します。これにより、プロシージャ呼び出しのカスケードがトリガーされ、最終的にテーブルへの謎の更新が行われます。
4.拡張イベント セッションの停止:
手順の実行後、拡張イベント セッションを停止します。
5.イベント データの分析:
fn_xe_file_target_read_file 関数を使用して、拡張イベント セッションによってキャプチャされたデータを読み取り、コール スタックを分析して実行された SQL ステートメントを特定します。
の利点延長イベントアプローチ:
追加利点:
キャプチャされた拡張イベント データは、クエリ実行プランと実行統計を分析することにより、パフォーマンスの問題のトラブルシューティングにも使用できます。
以上がSQL Server 拡張イベントは、特定のテーブルに影響を与える SQL ステートメントをどのように識別できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。