Sql-Server
檢查數據庫文件的物理碎片
我在 Internet 上進行了搜尋,但沒有找到明確的解釋說明何時應該嘗試對位於 SAN 上的數據庫的物理數據庫文件進行碎片整理。我知道一些 SAN 內部有一些工具和程序可以處理這個問題,但也有一些 SAN 缺乏這些功能。
我的問題有 3 個部分:
- 如何檢查數據庫文件的物理碎片?
- 如果文件位於 SAN 上,是否有必要這樣做?
- 是否有必要創建更大的物理數據庫文件以避免碎片?
我們使用租用的虛擬伺服器。數據庫正在增長,我們遇到了一些奇怪的問題。我想確保碎片整理不是問題。我也只是一般好奇。
按順序回答您的問題:
- 您可以通過轉到驅動器,右鍵點擊它並選擇工具,然後進行碎片整理來檢查磁碟的物理碎片。或接近於此,取決於您使用的作業系統版本,您的具體步驟可能會有所不同。但是您將只能看到卷級別的碎片,而不是特定文件。
- 在大多數情況下,不,如果您使用 SAN,則無需擔心文件的物理碎片(除非 SAN 專門用於此目的)。由於大多數 SAN 的使用方式,您的 IO 將是隨機的;這很好,因為你應該有很多主軸來分散負載。
- 較大的物理數據庫文件可以防止碎片,但同樣,如果您在 SAN 上,則不必擔心這一點。更重要的是要確保當文件增長時,它會以設定的大小(而不是百分比)增長,並且該大小足以處理大量的增長。您可能希望在 X 天內將文件增加到您估計所需的大小,然後對捲進行碎片整理。
此連結 - Brent Ozar更詳細地介紹了一些更多資訊,您可以使用這些資訊來證明或反駁 SAN 是造成瓶頸的原因。