Sql-Server

從哪裡開始修復 SQL Server 中的 IO 瓶頸?

  • February 5, 2011

我最近遇到了一篇有趣的文章,其中介紹了使用 IO 統計資訊來確定性能問題的原因。在檢查了我的統計數據後,我確定我有一個“IO 子系統中的瓶頸”。

不幸的是,我真的不知道這意味著什麼。從我在網上找到的內容來看,向它投入更多記憶體可能會有所幫助(我認為是因為它不必寫入磁碟那麼多)但我很好奇是否有人知道確定如何繼續?

IO 子系統通常處理儲存到磁碟。當必須寫入或讀取數據時會發生這種情況。一般來說,您需要監控磁碟隊列深度。我不完全記得這些建議,但我認為它類似於 1.5 * 所涉及的物理磁碟數量。

根據您的發現,有一些潛在的解決方案。

首先,在伺服器中獲得足夠的 RAM,以便它基本上可以將整個 DB 保留在記憶體中,並有足夠的空間來執行查詢。你可以讓它從分頁到磁碟的時間越少,你的情況就越好。這包括有足夠的 RAM 來將臨時表保存在 RAM 中,而不是將它們分頁到磁碟。

其次,獲得更快的磁碟。對 15k SCSI 驅動器進行了適當的突襲。如果適用,您甚至可以調查 SSD;在你這樣做之前要注意它們的局限性。將日誌文件放在單獨的磁碟系統上,並可能對錶進行分區,以便它們也位於不同的磁碟上。這可能會變得複雜且非常昂貴。

第三,調整您的查詢以更好地利用您的索引,這也應該有助於限制伺服器必須轉到磁碟以提取完整記錄的時間。

最後,除非它是一個實際問題,否則不要出汗。如果您的應用程序執行速度很快,那麼找到一個不同的區域來“修復”如果這是一個實際問題,那麼決定是否是時候擴展您的伺服器了。

引用自:https://serverfault.com/questions/231532