这个问题在这里已经有一个答案:

我们需要在4GB中安装数据库,以便使用SQL Server Express Edition。我从7GB数据库开始,发现了许多不需要的记录,并删除了它们。收缩后,数据库大小为4.6GB,748 MB是免费的 (根据数据库属性).

但是,当我执行 exec sp_spaceused, ,我有有趣的结果:

DatabaseName    Database_size   unallocation space
xxxxxx          4726.50 MB      765.42 MB
Reserved        Data          index_size      unused
3899472 KB      1608776 KB    1448400 KB      842296 KB

有什么想法,我如何至少释放其中一些未使用的空间?我也知道占用它的桌子。

更新: 尝试重建表索引值得吗?

ALTER INDEX ALL ON Production.Product REBUILD
有帮助吗?

解决方案

索引娱乐后,使用此命令:

ALTER INDEX ALL ON Production.Product REBUILD

而且我再次运行收缩命令 - 最终获得2.5G数据库。

其他提示

首先将恢复模式设置为简单,备份并缩小所有文件(数据和日志);使用“移动页面来启动数据库”(或确切的命名)选项用于收缩。

然后,您可以考虑索引碎片策划,在类似情况下帮助我们。

如果您已经缩小数据库,请给予 DBCC SHRINKDATABASE TRUNCATEONLY 尝试。

参考.

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top