维护计划向导(“定义‘收缩数据库’任务”页)
使用**“定义‘收缩数据库’任务”**页可以创建一个任务,尝试减小所选数据库的大小。使用下面的选项可以确定数据库收缩后在数据库中保留的未使用空间量(该百分比越大,数据库可收缩的量越小)。该数值取决于数据库中实际数据的百分比。例如,某个 100 MB 数据库包含 60 MB 的数据和 40 MB 的可用空间,当可用空间百分比为 50% 时,则将保留 60 MB 的数据和 30 MB 的可用空间(因为 60 MB 的 50% 是 30 MB)。只会去除数据库中的多余空间。有效值为 0 到 100。
收缩数据文件通过将数据页从文件末尾移动到更靠近文件开头的未占用的空间来恢复空间。在文件末尾创建足够的可用空间后,可以取消对文件末尾的数据页的分配并将它们返回给文件系统。
![]() |
---|
被移动用来收缩文件的数据可以分布到文件的任何可用位置。这将导致索引碎片并使搜索索引范围的查询变慢。若要消除碎片,请考虑在收缩后重新生成文件的索引。 |
此任务使用 DBCC SHRINKDATABASE 语句,同时使用的还有 NOTRUNCATE 或 TRUNCATEONLY 选项。
选项
Databases
指定受此任务影响的数据库。所有数据库
生成的维护计划将对除 tempdb 之外的所有 Microsoft SQL Server 数据库运行此任务。
所有系统数据库
生成的维护计划将对除 tempdb 之外的所有 SQL Server 系统数据库运行此任务。对用户创建的数据库不运行维护任务。
所有用户数据库
生成的维护计划将对用户创建的所有数据库运行此任务。但不会对 SQL Server 系统数据库运行任何维护任务。
特定数据库
生成的维护计划只对所选数据库运行此任务。如果选择此选项,则必须至少在列表中选择一个数据库。
当数据库大小超过指定值时收缩数据库
指定引发此任务的数据库大小 (MB)。收缩后保留的可用空间
当数据库文件中的可用空间达到此值时停止收缩。将释放的空间保留在数据库文件中
将数据库精简为连续页,但不释放这些页,因此数据库文件不会收缩。如果希望数据库再次扩大,但不希望重新分配空间,则使用此选项。使用此选项时,数据库文件不会尽可能地收缩。这将使用 NOTRUNCATE 选项。将释放的空间归还给操作系统
将数据库精简为连续页,并将这些页释放回操作系统,以供其他程序使用。此数据库文件将尽可能地收缩。这将使用 TRUNCATEONLY 选项。