現象
基数推定機能 (CE) として知られている基数推定ロジックは、クエリ プランの品質を向上させるために、SQL Server 2014 (互換性レベル 120) と SQL Server 2016 (互換性レベル 130) で再設計されました。
ただし、DISTINCT 演算子または GROUP BY 演算子を使用した多くの結合を含む複雑なクエリをコンパイルすると、コンパイルには予想以上に時間がかかる場合があります。
解決方法
この問題を修正するこの更新プログラムは、SQL Server 2016 の Service Pack 1 に含まれています。
注: この更新プログラムのインストール後に、修正プログラムが有効になるようにトレース フラグ 4199 を設定する必要があります。トレース フラグ 4199 を設定するには、MSDN のトレース フラグ (Transact-SQL) を参照してください。
SQL Server 2016 の新しいビルドには、以前のビルドに含まれていたすべての修正プログラムおよびセキュリティ修正プログラムが含まれています。SQL Server 2016 の最新ビルドをインストールすることをお勧めします。
回避策
この問題を回避するには、次のいずれかの方法を使用します。
-
トレース フラグ 9481 を使用して、クエリ オプティマイザーの基数推定モデルを SQL Server 2012 以前のバージョンに設定します。
-
データベースの互換性レベルを SQL Server 2012 (110) 以前のバージョンに変更します。
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。