現象
最初のリリース済みの累積更新プログラム6と SQL Server 2014 Service Pack 1 (SP1) (ビルド番号12.0.4449.0、 KB 3144524) が使用されていて、並列選択(...)を含むワークロードパターンを実行していることを前提とします。NOLOCKの既定の SQL Server ロックベースの分離レベルまたは上位レベル。 この状況では、ブロッキングまたはデッドロックが発生するクエリが発生する可能性があります。 このブロックの問題に対して公開されるパターンは、次のとおりです。
-
並列化選択の実行 (...) SQL Server の既定のロックベースの分離レベル以上の、特に NOLOCK ヒントを使用して SourceTable ステートメントからのテーブルに変換します。 このシナリオでは、SourceTable にアクセスしようとする他のクエリはブロックされます。
-
1つのトランザクションがオブジェクトに対して排他ロックを保持している間 (たとえば、実行中のテーブル更新など)、別のトランザクションが並列処理を実行しています (...) SourceTable から、NOLOCK ヒントを使って。 このシナリオでは、SourceTable にアクセスしようとしている SELECT クエリはブロックされます。
インストールされている現在のバージョンの SQL Server を見つけるには、「 Sql server とそのコンポーネントのバージョン、エディション、更新レベルを確認する方法」を参照してください。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
Microsoft でソフトウェアの更新について説明する 用語 について説明します。