【发布时间】:2011-05-27 00:05:54
【问题描述】:
我遇到了当前架构的性能问题。所以我建立了一个等效的模式来解决这个问题。
我对这两种模式都进行了一些测试,结果很难理解。记录一下,数据是一样的。
在对两个模式执行等效请求时,我从 Profiler 获得以下信息。
旧架构:
- 1,300,000 次读取
- 5,000 CPU
- 4 秒执行时间
新架构:
- 30,000 次读取
- 3,000 CPU
- 6 秒执行时间
不同之处似乎在于使用的查询计划。旧模式在查询计划中具有并行性。新架构未使用并行性。
有没有人遇到过类似的情况(更少的 IO/CPU 但更多的执行时间)。你是怎么解决的?
有没有办法强制并行?我玩过查询提示(http://msdn.microsoft.com/en-us/library/ms18171)。我能够停止旧架构上的并行性,但似乎无法在新架构上查询使用并行性。
提前致谢。
【问题讨论】:
-
索引是否相同?你重建它们了吗?您是否重新计算过统计数据?
标签: sql-server performance sql-server-2008