如何释放SQL Server数据库中未使用的空间



我有一个大小为270GB的SQL Server数据库。在太空报告中,几乎91%的空间显示为未使用。我知道未使用的空间是指分配给特定对象的空间。应用程序团队对数据库进行了清除操作,但我们无法用它来真正占用空间。

我检查了表上的索引碎片,但它们看起来不错。。我还需要检查什么,以及我应该做些什么来释放这个空间。DB在未来任何时候都不会使用这个空间。

根据我的理解,DBCC SHRINKFILE只释放未分配的空间。我读过关于DBCC CLEANTABLEDBCC SHRINK DATABASE的文章,但不确定它是否足够好。

如何有效地从对象中释放未使用的空间。

因此,根据我的理解,您首先需要收缩文件,然后可以收缩DB:

使用SQL Server Management Studio:

  1. 缩小文件:r单击DB、"任务"、"缩小"、"文件":然后选择一个略大于对话框中给定的"最小值"的新文件大小值。

  2. 缩小数据库:右键单击DB、"任务"、"缩小"、"数据库"(勾选"重新组织文件"复选框)

这样,我就可以减少"磁盘"报告中"未使用"空间的百分比。不过还有相当一部分(20%)。。我认为"重组"一些指数可能会有所帮助。

如果数据库中只有索引,则可以在创建新文件组并将所有索引移动到其中后删除旧文件组。您可以使用CREATE INDEX ... WITH DROP_EXISTING 移动索引

最新更新