删除表时SQL无法获取存储空间

时间:2014-08-11 19:27:44

标签: sql sql-server storage

从数据库中删除大表(170GB)时遇到问题。 当我通过右键单击>删除这个大表时,我没有再次释放存储空间。当然表是关闭数据库但数据库需要空间不缩小

谁能告诉我出了什么问题?

2 个答案:

答案 0 :(得分:1)

表存储在表空间中。这些都分配给数据库,无论该空间是否实际用于存储表(或索引或​​其他任何内容)。

删除表时,表空间中已释放空间。数据库可用于下一个表(或其他)的空间。您需要删除或缩小表空间以将空间释放回操作系统。

开始的地方是dbcc shrinkfile,记录为here

答案 1 :(得分:1)

简短回答:

在缩小之前运行sp_clean_db_free_space。我的假设是你尝试缩小文件,但如果不是that question has been answered.

括号声明:

You shouldn't shrink databases如果你可以避免它。

答案很长:您看到的行为是Ghost Records的结果。要在系统级别了解有关此内容的更多信息,请阅读以下文章:Inside the Storage Engine: Ghost cleanup in depth.