SQL Server 2008 R2 - 优化问题

时间:2011-05-27 00:05:54

标签: sql-server performance sql-server-2008

我遇到了当前架构的性能问题。所以我构建了一个等效的模式来解决这个问题。

我在两个模式上运行了一些测试,结果很难理解。为了记录,数据是相同的。

在对两个模式执行等效请求时,我从Profiler获得以下内容。

旧架构:

  • 1,300,000读
  • 5,000 CPU
  • 4秒执行时间

新架构:

  • 30,000读
  • 3,000 CPU
  • 6秒执行时间

差异似乎在于使用的查询计划。旧模式在查询计划中具有并行性。新架构没有使用并行性。

  1. 是否有人遇到类似情况(IO / CPU较少但执行时间较长)。你是怎么解决的?

  2. 有没有办法强制并行?我玩过查询提示(http://msdn.microsoft.com/en-us/library/ms18171)。我能够停止旧模式的并行性,但似乎不能在新模式上使用并行性查询。

  3. 提前致谢。

2 个答案:

答案 0 :(得分:2)

路易斯

目前没有办法直接在SQL Server中强制并行,但Adam Machanic做了一些工作来做到这一点。

http://sqlblog.com/files/folders/beta/entry29021.aspx

来到你的第一个问题,是的,我们也见过这样的案例。请注意,Parallelism是cpu绑定的,这就是为什么你看到更多的cpu时间,但总体上更少的执行时间,因为你有多个线程为你工作。

http://www.simple-talk.com/sql/learn-sql-server/understanding-and-using-parallelism-in-sql-server/

确保您具有适当的索引,并且还使用完整扫描更新统计信息。从长远来看,最好是Query Optimizer自己做出决定,但如果你想覆盖QO计划,那么你可能需要添加更多细节。架构,数据和复制。

HTH

答案 1 :(得分:2)