KB3088480 - 修复:在 SQL Server 2012 或 SQL Server 2014 中,当估计的行数和行大小正确时,排序运算符溢出到 tempdb

应用对象
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症状

假设您执行的是使用排序运算符的查询。 在极少数情况下,即使估计的行数和平均行大小是准确的,并且系统内存充足,排序运算符也可能开始溢出到 tempdb 中。 这会导致查询执行速度缓慢。

解决方法

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

建议:安装 SQL Server 的最新累积更新

SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 建议下载并安装 SQL Server 的最新累积更新:

      

        
注意 应用此修补程序后,启用跟踪标志 7470 以使 SQL Server 在计算排序所需的内存时考虑内部数据管理内存开销。 这将避免在上面“症状”部分中解释的情况下溢出。 请注意,这将增加排序查询的内存要求,并可能影响并发查询的内存可用性,因此建议有选择地使用跟踪标志。

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。