KB4460116 - 修正: 既定のカーディナリティ推定器を使用して多くの null 値を含むテーブルをクエリを実行すると過大評価が発生する

適用先
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

現象

Microsoft SQL Server 2014、2016、および 2017 がインストールされているとします。 多数の null 値を含むテーブル列があり、デフォルトのカーディナリティ推定量 (CE) を使用してそのテーブルに対してクエリを実行します。 このシナリオでは、テーブル列をコンパイル時に不明な値と比較するフィルターで過大評価が発生する可能性があります。

解決策

この問題は、次の SQL Server の更新プログラムで修正されています。

SQL Server 2017 の累積的な更新プログラム 13

累積アップデート 4 (SQL Server 2016 SP2)

SQL Server 2016 SP1 の累積的な更新プログラム 12

SQL Server 2014 SP3 の累積的な更新プログラム 1

SQL Server 2014 Service Pack 2 の累積的な更新プログラム 14

SQL Server 用の累積的な更新プログラムについて

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

SQL Server 2017 の最新の累積的な更新プログラム

SQL Server 2016 の最新の累積的な更新プログラム

SQL Server 2014 の最新の累積的な更新プログラム

状態

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

参考資料

カーディナリティの推定 (SQL Server)

Microsoft がソフトウェア更新プログラムについて説明するために使用する 用語について説明します 。