KB4460116 - FIX: 既定のカーディナリティ推定ツールを使用して 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

SQL Server 2016 SP2 の累積的な Udpate 4

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 がソフトウェア更新プログラムの説明に使用する 用語 について説明します。