我有一个大小为270GB的SQL Server数据库。在太空报告中,几乎91%的空间都显示为UNUSED。我知道未使用的空间是分配给特定对象的空间。应用程序团队对数据库执行了清除操作,但我们无法真正声明空间。
我已经检查了表上的索引碎片,但它们看起来很好..我还需要检查什么以及我应该做些什么才能释放该空间。 DB将来不会再使用该空间。
根据我的理解DBCC SHRINKFILE
仅释放未分配的空间。我读过关于DBCC CLEANTABLE
和DBCC SHRINK DATABASE
的内容,但不确定它是否足以执行。
如何有效地从对象中释放未使用的空间。
答案 0 :(得分:0)
如果数据库中只有索引,则可以在创建新文件组并将所有索引移入其中后删除旧文件组。您可以使用CREATE INDEX ... WITH DROP_EXISTING
移动索引
答案 1 :(得分:0)
所以据我所知,你首先需要缩小文件,然后你可以缩小数据库:
使用SQL Server Management Studio:
缩小文件:r-单击DB,'Tasks','Shrink','Files':然后选择一个稍大于对话框中给出的'Minimum is'值的新文件大小值。 / p>
收缩数据库:点击数据库,'任务','收缩','数据库'(勾选'重新组织文件复选框)
通过这种方式,我能够减少磁盘报告中“未使用”空间的百分比。虽然仍有相当一部分(20%)。我认为“重新组织”某些指数可能有所帮助。