【发布时间】:2018-09-19 10:08:34
【问题描述】:
我在 SQL Server 中有一个数据库,其中 MDF 为 8gb。 其中大部分(如 95%)是我保留的一些日志,我可以删除它们(或截断)。
即使我删除了记录,MDF 仍然是同一个文件。实际上如果我使用删除它更大,如果我使用截断是完全一样的。
强制数据库反映新数据大小的正确方法是什么?
附言。我尝试将数据库转移到另一台服务器,在将数据从 8GB 移动并删除日志后,它是 350mb。但是在主服务器中,即使删除了日志,它仍然是 8GB。
【问题讨论】:
-
See also。最简单的方法是缩小数据库。正确的方法(或更确切地说是方法)涉及更多,因为收缩很慢并且会导致可怕的索引碎片。即使你必须缩小,重要的是确保不再需要它。
-
我想避免收缩数据库,因为我相信它会变慢。正如你提到的重要的事情 - 这些是日志,所以它们会在某个时候再次填充。
-
因此空间和速度之间的权衡。它会在收缩后变慢,但主要是在需要时分配新的范围,并且可能是难以察觉的差异。
标签: sql-server