症状
如果满足以下条件,则查询可能运行缓慢:
-
查询使用 " 分组依据" 等聚合。
-
SQL Server 使用查询计划中的哈希聚合。
-
非重复值的估计数量比聚合的非重复值的实际数量要少得多。
出现此问题时,如果你执行探查器或扩展事件跟踪,你将看到哈希警告事件。
原因
出现此问题的原因是 SQL Server underestimates 所需的内存授予量。 这将导致 intermiedate 结果超过 tempdb。
解决方案
在以下 SQL Server 累积更新中首先修复此问题:
注意必须启用跟踪标记9410才能激活此修补程序。
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 我们建议你下载并安装 SQL Server 的最新累积更新:
参考
了解 Microsoft 用于描述软件更新的 术语 。