現象
結合または集計を含むクエリを実行することを前提とします。 1つの列と複数の列でカバーされている列 統計 (この列は先頭列ではない)。 使用している場合 既定の基数推定 (CE) SQL Server 2016 では、数値が過小評価される場合がある 個別の行の。 これにより、サブ最適化されたクエリの実行プラン (低見積もりではハッシュ演算子のメモリ許可の不足が原因で、クエリが tempdb にスピルされる可能性があります) が発生します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
注: この修正を有効にするには、トレースフラグ (TF) 4199 または対応するデータベーススコープ構成またはクエリヒントオプションを使用して、クエリオプティマイザーの修正プログラムを有効にする必要があります。
SQL Server の累積更新プログラムについて:
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
回避策
この問題を解決するには、次のクエリヒントを追加します。
し ヒント (' FORCE_LEGACY_CARDINALITY_ESTIMATION ')
参照情報
ソフトウェアの更新を説明するために Microsoft が使用する用語について説明 します。