从SQL Server删除数据不会影响.mdf文件大小

时间:2018-09-19 10:08:34

标签: sql-server

我在SQL Server中有一个数据库,其中MDF就像8GB。 其中大部分(如95%)是我保留的一些日志,我可以删除它们(或截断)。

即使我删除了记录,MDF仍然是同一文件。实际上,如果我使用Delete则更大,如果我使用Truncate则完全一样。

强制数据库反映新数据大小的正确方法是什么?

PS。我尝试将数据库移至另一台服务器,并将数据从8GB移至已删除的日志后,它的大小为350mb。但是在主服务器中,即使删除了日志,它仍然保留8GB。

1 个答案:

答案 0 :(得分:0)

为了减小数据库文件的大小,您必须缩小它。缩小将删除空白页,相当于对文件系统进行碎片整理或压缩Access数据库。这可以通过在Management Studio中数据库的“任务”菜单下执行“收缩”命令或执行DBCC SHRINKDATABASE命令来完成。

但是要注意生产中数据库的缩减!首先,要了解收缩的确切作用,例如通过阅读以下文章:https://docs.microsoft.com/en-us/sql/relational-databases/databases/shrink-a-database?view=sql-server-2017

这篇文章很好地研究了缩小数据库然后重新组织/重建索引的影响。 https://www.brentozar.com/archive/2017/12/whats-bad-shrinking-databases-dbcc-shrinkdatabase/。缩小与碎片化,磁盘空间与性能。