MSSQL Server Express:如何回收未使用的空间

在我们公司,我们使用专有的第三方自定义应用程序,使用SQL Server Express作为其后端。 如您所知,SQL Server Express 2008有10GB的限制。 对于这个数据库中的“旧”数据,我们有一个单独的数据库异地存储数据。

我知道,购买SQL Server Enterprise可以解决这个问题,但是作为一个小公司,在这个时候这不是我们的解决scheme。 我们不需要将“旧”logging存储在专有软件正在使用的“实时”SQL Express数据库中。 所以我可以从SQL Express数据库中删除“旧”logging,但是我遇到的问题是如何在删除这些数据后回收“旧”数据所消耗的空间。 我不想通过使用DBCC SHRINKDATABASE命令来增加碎片。 但是,我运行的任何命令,重build索引或收缩数据库或日志文件,都不会回收这个空间。 根据sp_spaceused,10GB数据库当前显示的未使用空间less于100MB。 我感谢您的任何input或从一滴SQL到另一个帮助解决此问题。

如果要回收可用空间,则需要缩小数据库。

正如贾森所说,如果你想要可用的空间,你需要缩小数据库。

但是,您说SQL报告只有100 MB未使用的空间。 大概你期待这个数字更高? 如果是这样,你预计能够索回多less空间?

重组(而不是重build)索引将需要较less的工作空间。 你尝试过吗?