搜索了一段时间后,我决定发布这个问题,因为找不到答案,如果有类似的问题/答案,我深表歉意。
在两个类似设置的 SQL 服务器上运行以下查询时,我们会遇到影响性能的不同执行计划,我们需要帮助找出原因。
查询:
SELECT process_id
INTO #temp
FROM revrep_revenue_fact
WHERE process_id = 284
DROP TABLE #temp
Run Code Online (Sandbox Code Playgroud)
服务器A的执行计划
服务器B的执行计划 服务器B http://s2.postimg.org/z9fjrfv4n/server_B.png
您会注意到服务器 B 在实际执行计划中具有 TOP 物理操作,我们正在尝试找出原因。两个查询在索引查找中使用相同的索引。
以下是服务器 A 和服务器 B 的一些详细信息
服务器 A 和 B 都是
Windows Server 2008 R2 标准服务包 1
24GB 内存
64位操作系统
使用 ( SELECT SERVERPROPERTY('ProductVersion') )获得的SQL Server 2012版本
服务器A SQL 版本11.0.3000.0
服务器B SQL 版本11.0.5058.0
我们尝试过的
为什么服务器B在执行计划中有TOP?在这个简单的查询示例中,没有真正的问题,但在更大的查询中,TOP 的成本上升,我们看到性能受到影响。任何帮助调试这将不胜感激,我们可以为您提供您可能需要帮助的任何其他信息。