現象
Microsoft SQL Server 2014 で 、新しい基数推定を有効にしていることを前提としています。 Join ステートメントを含むクエリを実行すると、次の問題が発生する可能性があります。
-
クエリに多くの結合が含まれている場合、クエリのコンパイルに時間がかかることがあります。 結合の増加により、コンパイル時間が大幅に増大する可能性があります。
-
結合述語が、等号または equalities の組み合わせよりも他の条件を使用している場合、結合内の特定の型の推定行数は、処理されている実際の行数とは異なります。 この状況では、クエリのパフォーマンスが低下するため、クエリは大きなメモリの割り当てを要求するため、全体的なサーバーのパフォーマンスは低下します。
解決方法
Service pack の情報
この問題を解決するには、SQL Server 2014 の Service Pack 1 を入手してください。
SQL Server 2014 Service Pack 1 (SP1) の詳細については、「 Sql server 2014 Service pack 1 で修正されたバグ」を参照してください。注: この記事で説明されている2番目の問題に対して修正プログラムを有効にするには、トレースフラグ4199を有効にします。
回避策
この問題を回避するには、データベースの互換性レベルを120より小さい値に設定するか、グローバル、セッション、またはクエリレベルでトレースフラグ9481を有効にして、古い cardinality の推定値を使用します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。