2011-06-27 161 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?