現象
オンライン インデックスの再構築は、Microsoft SQL Server 2012 または Microsoft SQL Server 2014 で多数の行を変更する同時実行クエリと共に使用すると、インデックスの破損やデータ損失を引き起こす可能性があります。 たとえば、オンライン インデックス ビルドが同じテーブルで同時に実行されている場合、レプリケーションはテーブル上の多数の行を更新します。
この問題は、次の条件に該当する場合に発生します。
- オンライン インデックス ビルド クエリは、並列モードで実行されます。
- デッドロック エラーと"ロック タイムアウト" などの致命的なエラーは、特定の順序で発生します。
注 この問題を回避するには、オンライン インデックス ビルドをシリアル モード (DOP = 1) で実行します。
解決策
累積的な更新プログラムの情報
この問題は、SQL Serverの次の累積的な更新プログラムで最初に修正されました。
SQL Server 2012 SP1 /en-us/help/2975396 の累積的な更新プログラム 11
SQL Server 2012 SP2 /en-us/help/2976982 の累積的な更新プログラム 1
SQL Server 2014 /en-us/help/2967546 の累積的な更新プログラム 2
SQL Server 用の累積的な更新プログラムについて
SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。
- SQL Server 2012 SP1 の最新の累積的な更新プログラム
- SQL Server 2012 SP2 の最新の累積的な更新プログラム
- SQL Server 2014 の最新の累積的な更新プログラム
SQL Server 2012 修正プログラム情報 サポートされている修正プログラムは Microsoft から入手できます。 ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。
修正プログラムがダウンロード可能な場合は、このサポート技術情報の記事の上部に 「修正プログラムのダウンロード」セクションがあります。 このセクションが表示されていない場合は、Microsoft カスタマー サービス & サポート にリクエストを送信し、修正プログラムを入手してください。
注: 別の問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストを作成することが必要になる場合があります。 特定の修正プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。 マイクロソフト カスタマー サービス サポートの電話番号一覧を参照、または別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support メモ "修正プログラムのダウンロードが可能" フォームには、修正プログラムが利用可能な言語が表示されます。 使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。
注 修正プログラムを適用した後、拡張イベント progress_report_online_index_operationには、イベントに追加されたerror_number データ フィールドにエラーの詳細が追加されます。 このフィールドを使用して、オンライン インデックス操作中の内部エラーを識別できます。
再起動要件この修正プログラムを適用した後、コンピューターを再起動する必要はありません。
修正プログラムの交換情報この修正プログラムは、以前にリリースされた修正プログラムを置き換えません。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。