現象

Microsoft SQL Server 2016 および2017を使用していることを前提としています。 デッドロックのデータを収集するためにイベントxml_deadlock_report を有効にした場合、1つのクエリ内デッドロックの発生について多くの xml_deadlock_report イベントが報告されます。

回避策

この問題の回避策として、次の例に示すように、 xml_deadlock_reportの代わりに filter error_number = 1205を使って error_reported XEvent を収集できます。

サーバー上のイベントセッション [Deadlock_Collection] を作成する

イベント sqlserver.error_reported を追加します (

WHERE ([error_number] = (1205)))

ターゲット package0 の追加 (filtering_event_name = N ' sqlserver.lock_acquired '、source = N ' sqlserver.query_hash ')

使用時間 (MAX_MEMORY = 4096 KB、EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS、MAX_DISPATCH_LATENCY = 30 秒、MAX_EVENT_SIZE = 0 KB、MEMORY_PARTITION_MODE = なし、TRACK_CAUSALITY =、STARTUP_STATE = オフ) 

いく

解決方法

この問題は、SQL Server の次の累積的な更新プログラムで修正されています。

       SQL Server 2017 の累積更新プログラム10

       SQL Server 2016 SP2 の累積更新プログラム2

ノートこの修正によって、スレッドを強制終了せずにデッドロックを解決できる場合、クエリ内デッドロックの xml_deadlock_report イベントは報告されません。

SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。

SQL Server 2017 の最新の累積的な更新プログラム

SQL Server 2016 の最新の累積的な更新プログラム

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報

ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。