Skip to main content
プログラムの使用中に SQL データベースのデッドロックが発生する場合は、Extended Events システムを使用してデッドロック情報のログ記録を有効にしてください。

XEvents セッションを作成する

SQL Server Management Studio のウィザードを使用してセッションを作成します。
  1. Management → Extended Events → Sessions 配下の Object Explorer から New Session Wizard を起動します。
    Management、Extended Events、Sessions 配下の Object Explorer から New Session Wizard を起動している SQL Server Management Studio のスクリーンショット。
  2. セッション名を指定します。サーバーの起動時に開始するには、Start the event session at server startup オプションを選択します。
    セッション名が入力され、Start the event session at server startup オプションが選択された New Session Wizard のスクリーンショット。
  3. Select Events To Capture セクションで、xml_deadlock_report を探します。
    xml_deadlock_report が選択された New Session Wizard の Select Events To Capture ステップのスクリーンショット。
  4. Specify Session Data Storage セクションで、記録されたセッション結果を含むファイルの保存先パスを指定します。Enable file rollover オプションを有効にすると、指定したディレクトリ内でファイルが自動的にローテーションされます。
  5. Summary セクションでは、ウィザードのセッション結果を T-SQL として開いて保存できます。

デッドロック情報を確認する

XEvents セッションから

.xel ファイルを読み取るには、SQL Server が提供するテーブル値関数 sys.fn_xe_file_target_read_file を使用します。トレース ファイルのパスを指定して、SQL Server Management Studio で次のクエリを実行します。

system_health セッションから

デッドロックのログ記録が有効になっていない場合は、既定で常に有効になっている system_health セッションを使用して、デッドロック情報を確認できます。SQL Server Management Studio で次のクエリを実行します。

Azure の場合

Azure では、既定で Blob ストレージに収集される別個のセッションがあります。これを表示するには、マスター コンテキストで以下のクエリを実行します。
クエリを実行したら、テクニカルサポートに連絡し、結果に表示されたデッドロック情報を提供してください。