只读文件组和压缩

文件组可以标记为只读。任何现有的文件组(主文件组除外)都可以标记为只读。不能使用任何方式对标记为只读的文件组进行修改。可以压缩只读文件组。

对于不允许修改的表(如历史数据),可以将它们置于文件组中,然后将这些文件组标记为只读。这可以防止意外的更新。

使用只读用户定义文件组和只读数据库的 NTFS 压缩

SQL Server 2005 支持只读用户定义文件组和只读数据库的 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 数据库在线。数据现已压缩,可用于只读访问。

请参阅

概念

使用文件和文件组
使用文件和文件组管理数据库增长
差异文件备份

其他资源

ALTER DATABASE (Transact-SQL)
设计文件和文件组

帮助和信息

获取 SQL Server 2005 帮助