2010-11-15 43 views
1

對於長時間的介紹,但在提出問題之前,我認爲給出背景有助於更好地理解我們的問題。爲SQL服務器中的特定查詢請求劃分I/O優先級

我們使用sql server 2008作爲我們的web服務作爲後端,並且時常需要太多時間來響應那些應該運行得非常快的請求,比如對於選擇請求需要超過20秒查詢只有22行的表。我們經歷了很多潛在的問題,這些問題可能會從存儲過程,觸發器等索引中引發問題,並試圖優化我們想要的任何操作,例如刪除不經常讀取但頻繁寫入的索引,或者爲我們的select查詢添加NOLOCK以減少鎖定表(我們可以用髒讀)。

我們還讓我們的DBA審查了服務器並對組件進行了基準測試,以查看CPU,內存或磁盤子系統中的任何瓶頸,並發現硬件方面我們也可以。並且由於矛是偶爾發生的,所以很難重現生產或開發中的錯誤,因爲大多數時候,當我們重新運行相同的查詢時,它會產生我們期望的響應時間,這些響應時間很短,而不是已經經驗較早。

話雖如此,我幾乎一直懷疑I/O,雖然它似乎並不是瓶頸。但是我認爲在運行服務器上的特定表的索引碎片報告之後,我能夠重現錯誤,這會立即導致請求中的派克不僅針對該表運行,而且會在查詢其他表的其他請求中運行。由於數據庫和服務器與我們使用的其他應用程序共享,並且不時可以在服務器上運行查詢,並且需要很長時間的數據庫對我們來說是常見的情況,因此我懷疑偶爾會遇到I/O瓶頸我相信這是事實。

因此,我想找出一種方法來優先處理來自Web服務的請求,這些請求即使在運行其他資源敏感的查詢時也會被處理。自從解決過程剛開始以來,我一直在尋找某種優先級,並發現SQL Server 2008有一個名爲「資源調控器」的功能,可以優先處理這些請求。

但是,由於我不是資源管理專家或DBA的專家,因此我想問問其他人可能已經使用或正在使用資源調控器的經驗,以及是否可以優先考慮I/O登錄或特定的存儲過程(例如,如果在我們收到Web服務請求時正在運行一個I/O密集型進程,SQL Server可以停止或減慢該進程的I/O活動並給予優先級到我們剛收到的要求?)。

謝謝任何​​花時間閱讀或提前幫忙的人。

一些硬件詳細信息:
CPU:2個四核AMD皓龍8354
內存:64GB
磁盤子系統:康柏EVA8100系列(我不知道,但它應該是RAID 0 + 1個翻過8個HP HSV210 SCSI驅動器)

PS:我幾乎可以100%確定應用程序服務器不會導致錯誤,並且沒有我們可以在其中識別的瓶頸。

更新1:

我會盡力回答,因爲我所能爲GBN下面提出以下問題。請讓我知道,如果你正在尋找別的東西。

1)您有什麼樣的索引和統計維護?
我們有一個每週運行的作業,每週五整理索引碎片。除此之外,還啓用了自動創建統計信息和自動更新統計信息。除了碎片工作以外,其他時間的高峯也在發生。

2)你有什麼樣的寫入數據量?
難以回答。除了我們的Web服務,還有一個前端應用程序訪問同一個數據庫,並且需要運行我所知的週期性資源密集型查詢,但是,我不知道該如何獲得,我們來說說每週或每天寫入金額給DB。

3)你有沒有簡介重新編譯和統計更新事件?
對不起,無法找出這一個。我不明白你問這個問題。如果可能的話,你能否提供這個問題的更多信息?

回答

1

首先想到的是,statistics正在更新,因爲達到了數據更改閾值導致執行計劃被重建。

  • 你有什麼樣的索引和統計維護?注意:索引維護更新索引統計信息,而不是列統計信息:您可能需要單獨的統計信息更新。
  • 你有什麼樣的寫入數據量?
  • 你有關於重新編譯和統計更新事件的簡介嗎?
+0

是的,統計數據被更新是我的第一個想法太多,但考慮到隨後的22條記錄的表是它仍然有可能發生?我們需要更多地瞭解我認爲的數據的波動性。重新調整當然是一種可能性。海報應該能夠測量表現不佳的查詢的編譯時間。 – 2010-11-15 19:03:24

+0

@John Sansom:22排的東西可能會阻擋。也許這也是一個服務器「失速」的誤導 – gbn 2010-11-15 19:09:19

+0

我需要找出你問的傢伙的問題的答案,因爲我不太熟悉這個東西。儘量儘快恢復,但可能需要一段時間才能從我們的DBA團隊獲得答覆。感謝您在此期間的興趣。 – Ferhat 2010-11-15 20:07:46

0

回答問題3)更新到原始問題時,請查看SQL Server Pedia上的以下參考。它提供了有關查詢重新編譯的解釋,並解釋瞭如何監視這些事件。我相信gbn問的是(請隨時糾正我的問題:-))你是否在緩慢執行麻煩的查詢之前看到重新編譯事件。您可以使用SQL Server Profiler查找發生的情況。

Reasons for Recompiling a Query Execution Plan

+0

嗨,約翰,感謝您的信息和鏈接。一旦我檢查了它,並希望弄清楚:),我會嘗試返回任何我能找到的附加信息。 – Ferhat 2010-11-22 15:27:21