为了使用 SQL Server Express Edition,我们需要一个 4GB 的数据库。我从一个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
重建索引后,使用此命令:
然后我再次运行 SHRINK 命令 - 最终得到 2.5G 数据库。
首先将恢复模式设置为简单,分别备份和收缩所有文件(数据和日志);使用“将页面移动到数据库的开头”(或确切的命名方式)选项进行收缩。
那么你可以考虑索引碎片整理,帮助我们在类似的情况下。
如果您已经缩小了数据库,请
DBCC SHRINKDATABASE TRUNCATEONLY
尝试一下。参考。