2012-05-31 184 views
0

我有統計數學函數,它們使用激烈的sql查詢並在sql程序集中運行。我只是增加了我的數據庫服務器(IIS 6,SQL Server 2005)上的RAM,但是我允許程序集運行5分鐘後,我的查詢仍佔用了我CPU的100%。有什麼辦法可以讓組件限制他們的CPU嗎?在100%的服務器變得沒有響應。任何SQL調優也會有所幫助。SQL Server 2005性能問題和測試

+0

你是100%確定這是新的RAM導致問題..?你運行過任何類型的Profiler還是查看了使用SQL函數,StoredProc或Select語句的任何代碼..? – MethodMan

+1

在SQL 2008+中,您可以使用資源調控器,但對於早期版本,沒有標準的方法來執行此操作。即使如此,似乎一些CLR函數是[不管理](http://blogs.msdn.com/b/psssql/archive/2008/01/10/sql-server-2008-resource-governor-questions。 aspx)由RG無論如何。所以最好的選擇可能是優化你的代碼,這需要很多關於代碼和數據的知識。也許你可以孤立一個'問題代碼'的例子並要求改進? – Pondlife

回答

2

SQLServer 2008有一個資源調控器,它允許您根據用於給定連接的db用戶名限制CPU和/或I/O。如果升級到SQL Server 2008是一個選項,你的統計組件可以使用一個專用的數據庫用戶名,該用戶名允許它消耗100%的CPU,除非另一個數據庫連接需要CPU,那麼它會屈服於其他進程。

這很有效。我們有查詢和報告,可對數千個數據點進行復雜的統計分析。它也是CPU密集型的。在升級到SQL Server 2008之前,我們遇到各種性能問題。現在一切順利。 2008年的其他新功能很不錯,但資源總監是我們升級的真正原因。

+0

謝謝,但我不認爲在這個時候我們被允許升級 – cdub