如何收缩文件 (SQL Server Management Studio)

本主题介绍如何通过使用 SQL Server Management Studio 中的对象管理器来收缩数据或日志文件。主数据文件不能收缩到小于 model 数据库中的主文件的大小。

收缩数据文件通过将数据页从文件末尾移动到更靠近文件开头的未占用的空间来恢复空间。在文件末尾创建足够的可用空间后,可以取消对文件末尾的数据页的分配并将它们返回给文件系统。

注意事项注意

被移动用来收缩文件的数据可以分布到文件的任何可用位置。这将导致索引碎片并使搜索索引范围的查询变慢。若要消除碎片,请考虑在收缩后重新生成文件的索引。

收缩数据或日志文件

  1. 在对象资源管理器中,连接到 SQL Server 数据库引擎实例,然后展开该实例。

  2. 展开**“数据库”**,再右键单击要收缩的数据库。

  3. 依次指向**“任务”“收缩”,再单击“文件”**。

  4. 选择文件类型和文件名。

  5. 根据需要,选中**“释放未使用的空间”**复选框。

    选中此选项后,将为操作系统释放文件中所有未使用的空间,并将文件收缩到上次分配的区。这将减小文件的大小,但不移动任何数据。

  6. 根据需要,可以选中**“在释放未使用的空间前重新组织文件”复选框。如果选中此选项,则必须指定“将文件收缩到”**值。默认情况下,该选项为清除状态。

    选中此选项后,将为操作系统释放文件中所有未使用的空间,并尝试将行重新定位到未分配页。

  7. 根据需要,输入在收缩数据库后数据库文件中要保留的最大可用空间百分比。值可以介于 0 和 99 之间。只有启用**“在释放未使用的空间前重新组织文件”**以后,此选项才可用。

  8. 根据需要,选中**“通过将数据迁移到同一文件组中的其他文件来清空文件”**复选框。

    选中此选项后,将指定文件中的所有数据移至同一文件组中的其他文件中。然后就可以删除空文件。此选项与执行包含 EMPTYFILE 选项 DBCC SHRINKFILE 相同。

  9. 单击**“确定”**。