KB3077273 - 修正: SQL Server 2012 または SQL Server 2014 で並列クエリを実行すると、まれに誤った結果が発生する

適用先
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

現象

Microsoft SQL Server 2012 または SQL Server 2014 に非クラスター化列ストア インデックスがあることを想定しています。 列ストア機能を使用するために並列モードでクエリを実行すると、クエリは、複数の結合列のインデックスを、複雑な式で計算されたプローブ側の結果と結合します。 この状況では、誤った結果セットが発生する可能性があります。

原因

式がハッシュ結合のプローブ側で最適化されている場合、SQL Server はハッシュ結合列の特定の順序を想定します。 この順序はクエリの最適化中に壊れる可能性があり、ハッシュ結合の不一致を引き起こす可能性があります。

解決策

この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。

推奨事項: SQL Server の最新の累積的な更新プログラムをインストールする

SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムをダウンロードしてインストールすることをお勧めします。

      

回避策

この問題を回避するには、以下のいずれかの方法を使用します。

  • クエリを実行するときは、MAXDOP=1 クエリ ヒントを使用します。
  • SQL Server 2014 にアップグレードします。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。