如果不是CPU,磁盘或networking,查询执行期间的瓶颈是什么?

我使用SQL Server 2005,想知道如果不是CPU,磁盘或networking,SQL Server工作时用户正在等待什么。 奇怪的是,系统监视器显示4个处理器平均为5%,磁盘(显示为50MB / s写入)以5-8MB / s的速度工作,但执行(插入和select)占用10分钟。 我很乐意安装额外的硬件,但是我没有看到什么设备是瓶颈,我怎么测量它的容量和当前的工作量。

任何意见,将不胜感激。

谢谢

附加信息:内存不断在70%左右的容量,我正在运行的Windows XP。

检查你的磁盘读写“等待”的时间。 一个重负载的数据库可能会使很多对IO饱和的非常小的数据产生读写请求。

正如其他人所指出的那样,磁盘在带宽方面很少是瓶颈,而是每秒钟可以执行的IO操作的数量 – 通常称为IOPS 。

磁盘的IOPS功能会因磁盘类型,缓存和RAID设置而有所不同。

你可能遇到的另一件事是锁定。 如果你有很多并发访问相同的数据,特别是在大型事务中,你可能会看到其他事务被阻塞 – 在被阻塞的时候不会造成网络,CPU和磁盘的使用,只是浪费时间。

可能是磁盘。 如果你正在寻找所有的地方,即使磁盘运行得尽可能快,吞吐量(MB / s)也会很低。

通用的建议:尝试增加SQLserver的缓存,调整你的查询,检查是否存在适当的索引和使用(并没有太多)。