症状
请考虑以下情况:
-
使用与数据库兼容级别120或 Microsoft SQL Server 2016 和2017系统更高级别对应的 基数估计(CE)配置。
-
运行包含搜索谓词的查询。
-
该查询将搜索小于或等于小于存储在statistics 对象中的RANGE_HI_KEY的最小值的任何数字的值。 或者,查询将搜索大于RANGE_HI_KEY 的最大值的值,以实现相同的统计值。
在此方案中,查询优化程序 overestimates 行数。 这可能会导致不超过最佳的查询计划选择和性能不佳。
解决方案
针对此问题的修复包含在 SQL Server 的以下累积更新中:
SQL Server 2016 的累积更新2 注意 安装此更新后,必须启用跟踪标记4199才能启用此修补程序。 若要启用跟踪标记4199,请参阅 Microsoft 开发人员网络(MSDN)网站上的 跟踪标记(transact-sql) 主题。
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。