我们公司使用的是专有的第三方自定义应用程序,该应用程序使用 SQL Server Express 作为后端。如您所知,SQL Server Express 2008 有 10GB 的硬性限制。对于此数据库中的“旧”数据,我们有一个单独的异地数据库来存储数据。
我知道购买 SQL Server Enterprise 可以解决这个问题,但是作为一家小公司,这目前对我们来说不是一个解决方案。我们不需要将“旧”记录存储在专有软件正在使用的“实时”SQL Express 数据库中。因此,我可以从 SQL Express 数据库中删除“旧”记录,但我遇到的问题是删除“旧”数据后如何回收这些数据所占用的空间。我不想使用 DBCC SHRINKDATABASE 命令增加碎片。但是我运行的任何命令,无论是重建索引,还是收缩数据库或日志文件,都不会回收这个空间。根据 sp_spaceused,10GB 数据库目前显示未使用空间少于 100MB。我非常感谢您对这个问题的任何意见或帮助,无论是从一滴 SQL 到另一滴 SQL。
答案1
如果您想恢复可用空间,则需要缩小数据库。
答案2
正如杰森所说,如果您想要恢复可用空间,则需要缩小数据库。
但是,您说 SQL 报告只有 100 MB 未使用空间。想必您预计这个数字会更高?如果是这样,您预计能够收回多少空间?
重新组织(而不是重建)索引将占用更少的工作空间。您尝试过吗?