KB4042232 - 修正: 不足しているインデックス機能がSQL Serverで有効になっている場合に保留中のクエリを取り消すときのアクセス違反

適用先
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

現象

たとえば次のようなシナリオを考えてみます。

  • Microsoft SQL Serverで一時テーブルを作成するストアド プロシージャがあります。

  • ストアド プロシージャが発行し、クエリが次の条件を満たすクエリを実行します。

    • クエリは、ストアド プロシージャによって作成された一時テーブルを参照します。
    • クエリには、インデックスが含まれていない WHERE 句があり、不足しているインデックス機能が有効になっています。
  • ストアド プロシージャが複数のインスタンスから同時に呼び出されるとします。 その後、一時テーブルが頻繁に作成および削除されるため、不足しているインデックスの対応するレコードが頻繁に作成および削除されます。

  • この状況では、ストアド プロシージャの保留中のクエリが取り消されると、アクセス違反エラーが発生する可能性があります。

解決策

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

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

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

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

SQL Server 2014 SP2 の累積的な更新プログラム 8

SQL Serverの累積的な更新プログラムについて:

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

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

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

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

回避策

この問題の回避策は、不足しているインデックスの収集を抑制するトレース フラグ (TF) 2392 を有効にすることです。

追加情報

不足しているインデックス機能の詳細については、次のリンクを参照してください。

インデックスの欠落機能

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。