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

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用于描述软件更新 的术语