現象
INSERT INTO を含むクエリを実行すると、SQL Server 2014 または2016で、パーティション化されたクラスター化された列ストアインデックスに値を挿入する SELECT ステートメント。クエリ内デッドロックが発生します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server 2016 RTM の累積更新プログラム5
SQL Server 2016 SP1 の累積更新プログラム2
SQL Server 2014 Service Pack 2 の累積更新プログラム3 注: この更新プログラムをインストールしたら、トレースフラグ2469を設定して修正プログラムを有効にする必要があります。 トレースフラグ2469を設定するには、Microsoft Developer Network (MSDN) web サイトの トレースフラグ (transact-sql) トピックを参照してください。
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
回避策
この問題を回避するには、以下のいずれかの方法を使用します。
-
SELECT ステートメントの中間結果を一時的なテーブルに保存し、その結果を、一時テーブルからクラスター化された列ストアインデックスに挿入します。
-
DOP = 1 を使用してクエリを実行します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。