0

我最近对我的应用程序表执行了清除操作。总记录为 110 万,使用的磁盘空间为 11.12GB。

我已经删除了 860k 条记录并保留了 290k 条记录,但为什么我使用的空间只下降到 11.09GB?

我监视报告的详细信息-磁盘使用情况-数据文件使用的磁盘空间-使用的空间

我需要执行收缩数据文件吗?这让我困惑了很久。

4

4 回答 4

3

对于 MS SQL Server,重建聚集索引。

您只删除了行:没有回收空间。

DBCC DBREINDEXALTER INDEX ... WITH REBUILD取决于版本

(这是 MS SQL,因为磁盘空间报告在 SSMS 中)

于 2009-06-01T09:33:33.703 回答
1

您需要显式调用一些将缩小数据文件的操作(特定于您的数据库管理系统)。当您删除记录时,数据库引擎不会收缩文件,这是出于优化目的 - 收缩非常耗时。

于 2009-06-01T09:19:44.963 回答
0

我认为这就像 Thunderbird 中的邮件文件夹:如果您删除某些内容,它只会被标记为已删除,但为了获得更高的性能,空间并没有被释放。因此,您的 11.09 GB 中的大部分现在将包含您的旧数据或 0。收缩数据文件将通过创建一个仅包含剩余实际数据的新文件来“压缩”(或“清理”)它。

于 2009-06-01T09:20:04.057 回答
0

可能您需要缩小表格。我知道 SQL Server 默认情况下不会为您执行此操作,我猜这是出于性能原因,也许其他数据库是相同的。

于 2009-06-01T09:20:22.137 回答