我最近在我的应用程序表上执行了清除。总记录为1.1百万,磁盘空间使用11.12GB。
我删除了860k记录并保留了290k记录,但为什么我的空间只使用了11.09GB?
我会监控报告的详细信息 - 磁盘使用情况 - 数据文件使用的磁盘空间 - 使用的空间。
我需要打包收缩数据文件吗?这一直困扰着我很久。
答案 0 :(得分:3)
对于MS SQL Server,重建聚簇索引。
您只删除了行:没有回收的空间。
DBCC DBREINDEX或ALTER INDEX ... WITH REBUILD取决于verison
(这是MS SQL,因为磁盘空间报告在SSMS中)
答案 1 :(得分:1)
您需要显式调用一些缩小数据文件的操作(特定于您的数据库管理系统)。删除记录时,数据库引擎不会缩小文件,这是为了优化目的 - 缩小是非常耗时的。
答案 2 :(得分:0)
我认为这与Thunderbird中的邮件文件夹类似:如果删除某些内容,它只会被标记为已删除,但为了获得更高的性能,空间不会被释放。因此,您的大部分11.09 GB现在都包含旧数据或0。收缩数据文件将通过创建一个仅包含剩余实际数据的新文件来“压缩”(或“清理”)。
答案 3 :(得分:0)
可能你需要缩小表格。我知道SQL服务器默认不为你做,我猜这是出于性能原因,也许其他数据库都是一样的。