Art*_*yan 10 performance sql-server execution-plan sql-server-2012
搜索了一段时间后,我决定发布这个问题,因为找不到答案,如果有类似的问题/答案,我深表歉意。
在两个类似设置的 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 的成本上升,我们看到性能受到影响。任何帮助调试这将不胜感激,我们可以为您提供您可能需要帮助的任何其他信息。
Dan*_*man 12
检查以确保两台服务器上的数据库兼容性级别相同。我在 SQL Server 2012 实例上运行了一个快速测试,如果兼容级别为 100 或更低,则看到引入了 TOP 运算符。除非有特殊原因,否则最好在 SQL Server 2012 实例上使用 110 (SQL Server 2012) 兼容性级别。
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |