共用方式為


重組 SQL Server 資料庫磁碟驅動器

本文提供 SQL Server 資料庫磁碟驅動器重組的一些指引。

原始產品版本:SQL Server
原始 KB 編號: 3195161

應該在操作系統層重組 SQL Server 磁碟嗎?

這取決於目前磁碟驅動器的分散狀態。 一般而言,它不會造成傷害,而且可能會有所幫助,假設您遵循重組 SQL Server 資料庫磁碟驅動器時預防措施一節中所述的預防措施。 唯一的負數是您必須關閉 SQL Server ,除非重組工具支援事務數據功能。 好消息是,在執行重組之後,您不必再次執行,除非您有許多自動成長和其他檔案在磁碟上移開和關閉。 請確定您瞭解公用程式使用的任何寫入快取策略。 這類公用程式的快取可能會牽涉到非電池支援的快取,而且這可能會違反 WAL 通訊協定需求。

其他相關資訊

磁碟重組器會將所有檔案,包括資料庫檔案,移至硬碟上的連續叢集。 這會優化並加速檔案存取。 除了 Windows NT 操作系統之外,如果您未重組硬碟,操作系統可能必須移至磁碟上的數個實體位置來擷取資料庫檔案,讓檔案存取速度變慢。

因為實體數據存取是I/O要求中最昂貴的部分,因此重組可為SQL Server 和其他應用程式提供效能提升。 彼此接近的位置相關數據區塊可減少 I/O 作業需求。

目前市場上提供各種重組公用程式。 某些公用程式會在開啟的檔案上啟用重組,而其他公用程式則要求關閉檔案重組,或在關閉的檔案條件下使用時執行得更好。 此外,某些公用程式具有交易功能,而其他公用程式則沒有。

重組 SQL Server 資料庫磁碟驅動器時的預防措施

當您評估重組公用程式以搭配 SQL Server 使用時,請確定公用程式提供事務數據功能。 具體來說,請選擇提供下列事務數據功能的重組公用程式:

  • 在成功建立新扇區並成功複製數據之前,不會考慮移動原始扇區。

  • 公用程式會以安全的方式保護檔案,以防止系統故障,例如電源中斷,讓檔案在邏輯上和實體上保持不變。 為了保證數據完整性,強烈建議在 SQL Server 型檔案上執行重組公用程式時執行提取隨插即用測試。

  • 預先寫入記錄 (WAL) 通訊協定需要防止扇區重寫,以避免數據遺失。 只要檔案執行任何數據移動,公用程式就必須維護檔案的實體完整性。 公用程式應該以交易方式處理扇區界限,以保持 SQL Server 檔案不變。

  • 公用程式應該提供適當的鎖定機制,以確保檔案會保留一致的映射以進行任何修改。 例如,公用程式應該確保原始扇區在複製到新位置時無法修改。 如果允許修改,重組公用程式可能會遺失寫入。

除非使用要重組的磁碟的 SQL Server 實例已關閉,否則不應該使用未提供這些事務數據功能的重要磁碟重組器,如此您就不會重組開啟的資料庫檔案。

Open-file defragmentation 會引發數個可能的問題,而關閉檔案重組通常不會:

  • 開啟檔案重組會影響效能。 重組公用程式可能會鎖定檔案的區段,以防止 SQL Server 完成讀取或寫入作業。 這可能會影響執行 SQL Server 之伺服器的並行。 請連絡重組工具的製造商,以瞭解檔案的鎖定方式,以及這可能會如何影響 SQL Server 並行。

  • 開啟檔案重組可能會影響寫入快取和排序。 開放檔案型公用程式需要 I/O 路徑元件;這些元件不得變更寫入作業的順序或預期本質。 如果寫入或WAL 通訊協定租用戶中斷,可能會造成資料庫損毀。 資料庫和所有相關聯的檔案都會被視為單一實體。 (本文涵蓋許多Microsoft知識庫文章、《SQL Server 在線叢書》和各種白皮書。所有寫入都必須保留原始寫入順序和寫入功能。

建議

  • 在您建立新的資料庫或將現有資料庫移至磁碟區之前,請先將NTFS磁碟區重組,除非格式化。
  • 請務必在資料庫第一次建立時適當地規劃和調整 SQL 數據和記錄檔的大小。
  • 如果使用自動成長,請建立預先 SQL Server 2014 事務歷史記錄。
  • 重組事務歷史記錄所在的磁碟或磁碟。 這可防止事務歷史記錄的外部檔案片段。 如果您的檔案有太多自動成長,或不是包含許多資料庫、記錄或其他已修改之檔案的專用磁碟,就可能發生此問題。 在此情況下,檔案(包括事務歷史記錄檔)可能會交錯和分散。
  • 如果您要重組叢集磁碟的資料庫磁碟驅動器,叢集磁碟應該設定為暫停健康情況監視(也稱為 維護模式)。
  • 若要將片段最小化,請勿壓縮資料庫檔案。 此外,請以將成長活動降到最低的大小手動成長。
  • 將您的資料庫檔案保留在專用磁碟上。
  • 在重組包含 SQL Server 資料庫和備份檔的位置之前,請先執行完整備份。

參考資料