2011-06-27 155 views
0

我们正在尝试运行一个存储过程,它将对具有超过1000万行的表的每一行进行一次小更新(这是一个大型数据库,正如您可以想象的那样)。我们正在运行SQL Server 2005.Sql Server 2005速度问题

我创建的存储过程表现得很奇怪。当它启动时,它移动得非常慢 - 占用很少的CPU资源。然后,突然间,它激增了一两个小时,占用了99%的CPU资源 - 在这一点上它的移动速度非常快(这正是我们想要的)。

但是,突然间,它再次变慢,工作非常缓慢!我们希望它能够快速运行(即获取所有需要的资源),因此它可以完成任务(因为这是设计用于更新数据库的一次存储过程)。

我们的服务器具有以下资源:英特尔(R)至强(R)CPU E5520 @ 2.27 GHz的2.27千兆赫,18 GB的RAM

可能有人请帮助我了解为什么SQL Server正在这样做,以及如何修复我的存储过程,使其快速运行并使用可用的资源CONSISTENTLY?

+3

您能否给我们提供程序的示例代码? – niktrs

回答

0

通过识别SP正在慢慢工作时发生了什么事情 - 是磁盘或网络相关的瓶颈?

您可以按照使用性能监视器,以确定这一点布伦特奥扎尔的伟大指南:http://www.brentozar.com/archive/2006/12/dba-101-using-perfmon-for-sql-performance-tuning/

一旦你知道在哪里的瓶颈所在,它成为了很多更容易识别的核心问题。 SP是否加入任何其他表格?有没有一个连接的数据没有分配导致在某些行相比其他更多的磁盘IO?