[FIX] エラー: 17066」並列実行プランを使用する場合、SQL Server 2008 R2 で分割された非クラスター化インデックスを作成するときに発生

適用対象: SQL Server 2008 R2 Service Pack 1SQL Server 2008 R2

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

現象


並列実行プランを使用して Microsoft SQL Server の 2008 R2 で分割された非クラスター化インデックスを作成しようとすると、次の現象のある問題が発生しました。
  • 次のエラー メッセージは、SQL Server エラー ログに記録されます。
    < 日時 > spid < n > エラー: 17066、レベル: 16、状態: 1 < 日時 > spid < n > SQL Server アサーション: ファイル: < sobuild.c > は、行 = 3392 失敗したアサーション = ' CompareRow (rightPageRow、* m_pSEBindings、keyCnt、* pHobtAccess を使用。LEAF_LEVEL)' です。 このエラーは、タイミングに関連する可能性があります。 ステートメントを再実行した後、エラーが解決しない場合は、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 で初めてリリースされました。この累積的な更新プログラム パッケージを入手する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。
2544793 SQL Server 2008 R2 Service Pack 1 用の累積的な更新プログラム パッケージ 1
注: ビルドは累積的であるため、各新しい修正プログラム リリースには、すべての修正プログラムが含まれていて、以前の SQL Server 2008 R2 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。 この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2567616 ビルドの SQL Server 2008 R2 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 R2

SQL Server 2008 R2

この問題に対する修正は、累積的な更新プログラム 8 で最初にリリースされました。詳細については SQL Server 2008 R2 でこの累積的な更新プログラム パッケージを入手する方法について、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。
2534352 SQL Server 2008 R2 用の累積的な更新プログラム パッケージ 8
注: ビルドは累積的であるため、各新しい修正プログラム リリースには、すべての修正プログラムが含まれていて、以前の SQL Server 2008 R2 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。 この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
981356 ビルドの SQL Server 2008 R2 のリリース後にリリースされた SQL Server 2008 R2

回避策


この問題を回避するには、以下のいずれかの方法を使用します。
  • インデックスを作成する前に、サーバーの構成では、 1に、並列処理の最大限度] オプションを設定します。
  • インデックスを作成するときは、 MAXDOPクエリ ヒント オプションを1に設定します。

状態


マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

詳細情報


CREATE INDEXステートメントの詳細については、次の MSDN web サイトを参照してください。 パーティション関数の作成ステートメントの詳細については、次の MSDN web サイトを参照してください。