現象
複数の Cpu を搭載したコンピューター上の Microsoft SQL Server 2008 R2 または Microsoft SQL Server 2012 で、バイナリラージオブジェクト (BLOB) 列を照会することを前提としています。 このクエリでは、NOLOCK ヒントが使用され ます。 この状況では、コンピューターで CPU 使用率が高くなります。注:この問題は、コンピューターに16個以上の Cpu が搭載されている場合に発生する可能性が高くなります。
原因
この問題は、スピンロックバック処理アルゴリズムが効率的でないために発生します。
解決方法
累積的な更新プログラムの情報
SQL Server 2012 SP1 の累積更新プログラム2
この問題の修正プログラムは、累積的な更新プログラム2で最初にリリースされました。SQL Server 2012 SP1 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2790947 SQL Server 2012 Service Pack 1 の累積的な更新プログラムパッケージ2注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2012 SP1 修正プログラムに含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2772858 SQL Server 2012 Service Pack 1 がリリースされた後にリリースされた SQL Server 2012 ビルド
SQL Server 2012 の累積更新プログラム5
この問題の修正プログラムは、累積的な更新プログラム5で最初にリリースされました。SQL Server 2012 用の累積更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2777772 SQL Server 2012 の累積更新プログラムパッケージ5注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2012 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2692828 SQL Server 2012 がリリースされた後にリリースされた SQL Server 2012 ビルド
SQL Server 2008 R2 Service Pack 2
この問題の修正プログラムは、累積的な更新プログラム3で最初にリリースされました。この累積的な更新プログラムパッケージを SQL Server 2008 R2 Service Pack 2 で入手する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2754552 SQL Server 2008 R2 Service Pack 2 の累積更新プログラムパッケージ3注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 Service Pack 2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2730301 SQL Server 2008 R2 Service Pack 2 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
回避策
この問題を回避するには、次のいずれかの方法を使用します。
-
バイナリラージオブジェクト列のサイズを小さくします。
-
クエリから NOLOCK ヒントを削除します。
-
SQL Server で使用する Cpu の数を減らします。