Microsoft は、Microsoft SQL Server 2008 R2 の修正プログラムを1つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、新しいリリースごとに、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティの修正プログラムが含まれています。
現象
Microsoft SQL Server 2008 R2 で、分割された非クラスター化インデックスを作成しようとして、並列実行プランを使用すると、次の現象が発生する問題が発生します。
-
次のエラーメッセージが SQL Server のエラーログに記録されます。
<日付時刻> spid<n> エラー: 17066、深刻度:16、状態: 1. <><> <> m_pSEBindings PAGE_LEAF_LEVEL @: @, line = 3392 Failed Assertion = ' CompareRow (rightPageRow, *, keyCnt, * pHobtAccess,) ' このエラーは、タイミングに関連している可能性があります。 ステートメントの再実行後もエラーが発生する場合は、DBCC CHECKDB を使用してデータベースの構造の整合性を確認するか、またはサーバーを再起動して、メモリ内のデータ構造体が破損していないことを確認します。
-
並列実行プランでは、インデックスは作成されません。
-
CREATE INDEXステートメントを送信するクライアントアプリケーションは、SQL Server の例外を受け取ることがあります。
-
クライアントとサーバー間の接続が切断されています。
注:
-
並列実行計画は、次のような場合に使用されることがあります。
-
MAXDOPクエリヒントオプションを1より大きい値に設定します。
-
[ 並列処理の最大限度 ] オプションは、 0 またはサーバー構成で 1 より大きい値に設定します。
-
-
この問題は、Microsoft SQL Server 2008 では発生しません。
原因
この問題は、2つ以上の SQL Server 並列スレッドが、オーバーラップしたパーティション範囲でインデックス作成を実行するために発生します。
解決方法
累積的な更新プログラムの情報
SQL Server 2008 R2 Service Pack 1
この問題の修正プログラムは、SQL Server 2008 R2 Service Pack 1 の累積更新プログラム1で最初にリリースされました。この累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2544793 SQL Server 2008 R2 Service Pack 1 の累積的な更新プログラムパッケージ1注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2567616 SQL Server 2008 R2 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド
SQL Server 2008 R2
この問題の修正プログラムは、累積的な更新プログラム8で最初にリリースされました。SQL Server 2008 R2 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2534352 SQL Server 2008 R2 の累積更新プログラムパッケージ8 注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
981356 SQL Server 2008 R2 のリリース後にリリースされた SQL Server 2008 R2 ビルド
回避策
この問題を回避するには、以下のいずれかの方法を使用します。
-
インデックスを作成する前に、[サーバー構成] で 並列処理の最大限度 を 1 に設定します。
-
インデックスを作成するときに、 MAXDOP クエリヒントオプションを 1 に設定します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
CREATE INDEXステートメントの詳細については、次の MSDN web サイトを参照してください。
CREATE INDEX ステートメントに関する一般的な情報CREATE PARTITION 関数ステートメントの詳細については、次の MSDN web サイトを参照してください。