2013-04-17 96 views
1

是否有任何方法可以在SQL Server 2008 R2中設置服務質量(QoS)或存儲過程的優先級?SQL Server 2008 R2存儲過程的優先級或QoS

我有一個公開的一些報告顯示觸發一些長期運行的非關鍵報告類型存儲過程的ASP.NET 4.0 Web應用程序。

這個相同的應用程序和數據庫支持一些實時數據供給(反向ajax)和其他關鍵過程。

我的問題是這些長期運行的非關鍵存儲過程有時我不利關鍵流程的性能影響,尤其是當超時在長時間運行存儲過程或罕見的僵局事件發生。

有沒有設置對存儲過程的優先級或服務質量,以儘量減少對我的那些重要的非關鍵存儲過程的影響,任何方法?

如果這個功能沒有在SQL Server支持,有什麼可以在應用層在我的數據訪問層(ADO.NET)設置優先級來完成,可能使用不同的連接字符串?

非常感謝

回答

0

這取決於爲什麼報告特效的實時進程造成不利影響。如果是因爲資源爭奪(CPU等),那麼你可能能夠做些什麼。

但是,如果是因爲鎖爭用(阻塞/死鎖),那麼沒有簡單的外部修復,您必須要麼1)改變報告自身工作的方式或2)重新安排/他們不衝突,或3)與之共存。

+0

這主要是因爲CPU利用率和大表。報告類型sprocs是隻讀的(我添加了NoLock),但它們正在讀取一些與我的關鍵數據饋送表使用的表相同的表,並導致CPU從5-10%的平均峯值到50 -75%。報告類型sprocs的100%準確性並不重要,但它們對系統其餘部分的影響是一個問題。 RAM不是問題。具有32GB RAM的服務器雙四核(8CPU)處理器。我想知道如果在報告SPROC中添加(MAXDOP = 1或2)會有幫助嗎?這些低優先級的CPU重SPROC大約運行。每60秒。 – user151402

+0

是的,如果是CPU問題,MAXDOP是你可以做的事情之一。 – RBarryYoung

相關問題