唯讀檔案群組和壓縮

檔案群組可標示成唯讀。除了主要檔案群組的任何現有檔案群組都可標成唯讀。標成唯讀的檔案群組將無法以任何方式修改。唯讀檔案群組可加以壓縮。

對於像歷史資料這類絕不能修改的資料表,請將它們放在檔案群組內,然後將該檔案群組標示成唯讀。這可避免意外地更新。

使用 NTFS 壓縮唯讀使用者自訂檔案群組和唯讀資料庫

SQL Server 支援 NTFS 壓縮唯讀使用者自訂檔案群組和唯讀資料庫。您應該在下列情況下考慮壓縮唯讀資料:

  • 您有大量的靜態或歷史資料,必須供有限的唯讀存取使用。

  • 您的磁碟空間有限。

管理考量

  • 只支援 Windows NTFS 壓縮。如需詳細資訊,請參閱 Windows NTFS 檔案系統文件集。

  • 儲存在唯讀使用者自訂 (.NDF) 檔案群組中的使用者資料支援資料壓縮。除非資料庫本身是唯讀的,否則無法壓縮主要檔案群組與交易記錄檔。

  • 若要壓縮使用者自訂檔案群組的檔案,資料庫必須離線。如需詳細資訊,請參閱<ALTER DATABASE (Transact-SQL)>。

  • 若要壓縮檔案,或驗證檔案的壓縮狀態,請使用 Windows COMPACT 命令或 [Windows 檔案總管]。如需詳細資訊,請參閱 Windows 文件集。

  • 無法壓縮 SQL Server 系統資料庫,例如 mastermodelmsdbresourcetempdb

  • SQL Server 備份與還原作業支援壓縮的檔案群組。不需要對備份與還原實作進行修改。作業系統壓縮對於備份與還原作業是透明的。

  • 完全支援 ALL SELECT 陳述式與唯讀作業。這些陳述式的執行時間將比在非壓縮檔案群組上執行相同的陳述式還要長。

  • 若要修改壓縮的資料,檔案必須是未壓縮的且檔案群組須設定為讀取/寫入。

  • 唯讀資料庫的主要和使用者自訂檔案群組都可以壓縮。關聯的檔案必須使用 NTFS 壓縮來壓縮。

  • 在壓縮的檔案群組上支援附加資料庫作業。檔案群組必須在卸離資料庫前設定成唯讀。在卸離資料庫前,必須先壓縮檔案。

次要檔案群組壓縮範例

在此範例中,會從實際執行的資料庫將銷售訂單交易移動到 SalesArchive,這是儲存在唯讀、壓縮的檔案群組中的封存資料庫。該資料將用來做為銷售分析和預測的間歇性搜尋之用,但永遠不會修改它。

  1. 為了準備從實際執行的資料庫移動資料,資料庫管理員 (DBA) 將在 SalesArchive 上建立讀取/寫入檔案群組 Sales01Sales01 是位於 NTFS 目錄上。

  2. DBA 會複製實際執行的資料庫的銷售訂單交易,以封存建立在 Sales01 檔案群組上的資料表

  3. 在所有的使用者都離開 SalesArchive 資料庫後,DBA 會修改資料庫並將 Sales01 檔案群組設為唯讀,然後將資料庫設為離線。

  4. DBA 使用 Windows COMPACT 命令來壓縮 Sales01.ndf 檔案。如需詳細資訊,請參閱 Windows NTFS 文件集。

  5. DBA 啟動 SalesArchive 資料庫使其上線。資料現在已經過壓縮,而且可用於唯讀存取。