使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设你运行涉及联接或聚合的查询 在由单列和多列覆盖的列上 统计信息(此列不是前导列)。 如果您使用的是 默认基数预估器(CE)在 SQL Server 2016 中,它可能会低估号码 不同的行。 这将导致子优化查询执行计划(例如:较低估计可能导致哈希运算符的内存不足,从而导致查询溢出到 tempdb)。

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

解决方案

在 SQL Server 的以下累积更新中修复了此问题:

注意 为了使此修补程序生效,你必须使用跟踪标记(TF)4199或相应的数据库范围配置或查询提示选项启用查询优化程序修补程序。

关于 SQL Server 的累积更新:

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

解决方法

可通过添加以下查询提示修复此问题:

用法 提示("FORCE_LEGACY_CARDINALITY_ESTIMATION")

参考

了解Microsoft 用于描述软件更新的术语 。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×