現象
次のような状況で問題が発生します。
-
Microsoft SQL Server で一時テーブルを作成するストアドプロシージャがあります。
-
ストアドプロシージャで問題が発生したクエリを実行し、クエリが次の条件を満たしている。
-
クエリは、ストアドプロシージャによって作成された一時テーブルを参照します。
-
クエリには、いずれのインデックスでもカバーされていない WHERE 句があり、不足しているインデックス機能が有効になっています。
-
-
ストアドプロシージャが複数のインスタンスから同時に呼び出されることを前提とします。 これにより、一時的なテーブルが頻繁に作成され、削除されるため、欠落しているインデックスに対応するレコードの作成と削除が頻繁に行われることになります。
-
この状況では、ストアドプロシージャの保留中のクエリが取り消されると、アクセス違反エラーが発生する場合があります。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server 2016 RTM の累積更新プログラム9
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
SQL Server 2017 の最新の累積的な更新プログラム
回避策
この問題を回避するには、トレースフラグ (TF) 2392 を有効にします。この場合、欠落しているインデックスのコレクションは抑制されます。
詳細情報
不足しているインデックス機能の詳細については、次のリンクを参照してください。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。