数据库大小很大

时间:2009-08-11 10:00:25

标签: sql-server database size bigdata shrink

我有以下问题。 我们有一个数据库,可以在数据库中存储二进制文件。 我们知道数据库的大小可能很大,所以我们从数据库中删除了所有二进制文件,并在其上使用了“收缩”任务。 这样我们希望数据库会小得多。 结果如下:

删除前的

大小为:20千兆字节 删除后大小为:25千兆字节(包括日志文件) 缩小尺寸后:13千兆字节

现在我不知道13 gig来自哪里,数据库中最大的表是一个logtable,它的1.3 gig所有其余的组合不需要200 mb ......

可能是日志文件中仍有一些数据导致收缩任务无法删除? 有这个问题的解决方案吗?

4 个答案:

答案 0 :(得分:3)

如果您的恢复模式为“完整”并且您尚未备份然后缩小事务日志,那么它仍然可能仍然很大。

根据您的具体情况,收缩事务日志的最简单方法之一是将恢复模型设置为简单,然后收缩事务日志文件,然后将恢复模型设置回完全..但是,如果这是一个生产在您可能需要进行时间点恢复的系统中,您应该执行事务日志的备份。

答案 1 :(得分:3)

要获取有关空间使用的更多信息,您可以尝试:

EXEC sp_spaceused;

答案 2 :(得分:0)

请记住设置事务日志备份(不只是数据库备份,因为它们不会像您发现的那样保持日志很小)在您获取Robin Day的建议并缩小日志后,您的日志将再次变大。我们的事务日志每15分钟备份一次。您的日程安排可能需要或多或少,具体取决于您在失败时可以承受的损失数据。至少我会进行每日日志备份,以保持日志的合理大小。

答案 3 :(得分:0)

一种可能性是您从中删除了数据的表是一个堆(意味着没有聚集索引),当您从堆中删除时,不一定会释放为该表分配的空间。查看MS的这篇文章:http://support.microsoft.com/kb/913399