2010-11-15 45 views
1

对于长时间的介绍,但在提出问题之前,我认为给出背景有助于更好地理解我们的问题。为SQL服务器中的特定查询请求划分I/O优先级

我们使用sql server 2008作为我们的web服务作为后端,并且时常需要太多时间来响应那些应该运行得非常快的请求,比如对于选择请求需要超过20秒查询只有22行的表。我们经历了很多潜在的问题,这些问题可能会从存储过程,触发器等索引中引发问题,并试图优化我们想要的任何操作,例如删除不经常读取但频繁写入的索引,或者为我们的select查询添加NOLOCK以减少锁定表(我们可以用脏读)。

我们还让我们的DBA审查了服务器并对组件进行了基准测试,以查看CPU,内存或磁盘子系统中的任何瓶颈,并发现硬件方面我们也可以。并且由于矛是偶尔发生的,所以很难重现生产或开发中的错误,因为大多数时候,当我们重新运行相同的查询时,它会产生我们期望的响应时间,这些响应时间很短,而不是已经经验较早。

话虽如此,我几乎一直怀疑I/O,虽然它似乎并不是瓶颈。但是我认为在运行服务器上的特定表的索引碎片报告之后,我能够重现错误,这会立即导致请求中的派克不仅针对该表运行,而且会在查询其他表的其他请求中运行。由于数据库和服务器与我们使用的其他应用程序共享,并且不时可以在服务器上运行查询,并且需要很长时间的数据库对我们来说是常见的情况,因此我怀疑偶尔会遇到I/O瓶颈我相信这是事实。

因此,我想找出一种方法来优先处理来自Web服务的请求,这些请求即使在运行其他资源敏感的查询时也会被处理。自从解决过程刚开始以来,我一直在寻找某种优先级,并发现SQL Server 2008有一个名为“资源调控器”的功能,可以优先处理这些请求。

但是,由于我不是资源管理专家或DBA的专家,因此我想问问其他人可能已经使用或正在使用资源调控器的经验,以及是否可以优先考虑I/O登录或特定的存储过程(例如,如果在我们收到Web服务请求时正在运行一个I/O密集型进程,SQL Server可以停止或减慢该进程的I/O活动并给予优先级到我们刚收到的要求?)。

谢谢任何​​花时间阅读或提前帮忙的人。

一些硬件详细信息:
CPU:2个四核AMD皓龙8354
内存:64GB
磁盘子系统:康柏EVA8100系列(我不知道,但它应该是RAID 0 + 1个翻过8个HP HSV210 SCSI驱动器)

PS:我几乎可以100%确定应用程序服务器不会导致错误,并且没有我们可以在其中识别的瓶颈。

更新1:

我会尽力回答,因为我所能为GBN下面提出以下问题。请让我知道,如果你正在寻找别的东西。

1)您有什么样的索引和统计维护?
我们有一个每周运行的作业,每周五整理索引碎片。除此之外,还启用了自动创建统计信息和自动更新统计信息。除了碎片工作以外,其他时间的高峰也在发生。

2)你有什么样的写入数据量?
难以回答。除了我们的Web服务,还有一个前端应用程序访问同一个数据库,并且需要运行我所知的周期性资源密集型查询,但是,我不知道该如何获得,我们来说说每周或每天写入金额给DB。

3)你有没有简介重新编译和统计更新事件?
对不起,无法找出这一个。我不明白你问这个问题。如果可能的话,你能否提供这个问题的更多信息?

回答

1

首先想到的是,statistics正在更新,因为达到了数据更改阈值导致执行计划被重建。

  • 你有什么样的索引和统计维护?注意:索引维护更新索引统计信息,而不是列统计信息:您可能需要单独的统计信息更新。
  • 你有什么样的写入数据量?
  • 你有关于重新编译和统计更新事件的简介吗?
+0

是的,统计数据被更新是我的第一个想法太多,但考虑到随后的22条记录的表是它仍然有可能发生?我们需要更多地了解我认为的数据的波动性。重新调整当然是一种可能性。海报应该能够测量表现不佳的查询的编译时间。 – 2010-11-15 19:03:24

+0

@John Sansom:22排的东西可能会阻挡。也许这也是一个服务器“失速”的误导 – gbn 2010-11-15 19:09:19

+0

我需要找出你问的家伙的问题的答案,因为我不太熟悉这个东西。尽量尽快恢复,但可能需要一段时间才能从我们的DBA团队获得答复。感谢您在此期间的兴趣。 – Ferhat 2010-11-15 20:07:46

0

回答问题3)更新到原始问题时,请查看SQL Server Pedia上的以下参考。它提供了有关查询重新编译的解释,并解释了如何监视这些事件。我相信gbn问的是(请随时纠正我的问题:-))你是否在缓慢执行麻烦的查询之前看到重新编译事件。您可以使用SQL Server Profiler查找发生的情况。

Reasons for Recompiling a Query Execution Plan

+0

嗨,约翰,感谢您的信息和链接。一旦我检查了它,并希望弄清楚:),我会尝试返回任何我能找到的附加信息。 – Ferhat 2010-11-22 15:27:21