KB2619077 - 修正: バックグラウンド クリア操作で欠落しているタスクが欠落しているインデックス エントリを削除しようとすると、アクセス違反が発生する

適用先
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

マイクロソフトでは、Microsoft SQL Server 2008 Service Pack 2 (SP2) の修正プログラムを 1 つのダウンロード可能なファイルとして配布しています。 修正は累積的であるため、各新しいリリースには、以前の SQL Server 2008 SP2 更新プログラム リリースに含まれていたすべての修正プログラムとすべてのセキュリティ更新プログラムが含まれています。

現象

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

  • SQL Server 2008、SQL Server 2012、または SQL Server 2014 のインスタンスでデータベースのAUTO_CLOSEオプションを有効にします。

  • データベースのオブジェクトに対する 1 つ以上の不足しているインデックス エントリが、不足しているインデックス動的管理ビューにあります。

  • このデータベースに対して行われたすべての接続が閉じられます。

    注: すべての接続が閉じられると、データベースは自動的に閉じられます。

  • 同時に、バックグラウンド クリア操作のタスクは、欠落しているインデックス エントリを削除しようとします。 タスクを実行するスレッドが、データベースを閉じるスレッドと同じではありません。

このシナリオでは、アクセス違反が発生します。 さらに、この問題を解決するには、SQL Server のインスタンスを再起動する必要があります。

原因

この問題は、バックグラウンド クリア操作の不足しているタスクが不足しているインデックス エントリを削除しようとしたときに、free メソッドに対して複数の呼び出しが行われるために発生します。

解決策

この問題は、次の SQL Server の累積的な更新プログラムで最初に修正されました。

SQL Server 2014 SP1 の累積的な更新プログラム 1 /en-us/help/3067839

SQL Server 2014 用の累積的な更新プログラム 8 /en-us/help/3067836

SQL Server 2012 SP2 用の累積的な更新プログラム 6 /en-us/help/3052468

SQL Server 2008 SP2 の累積的な更新プログラム 7 /en-us/help/2617148

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

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

      

状態

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

回避策

この問題を回避するには、データベースの AUTO_CLOSE オプションを無効にします。