【问题标题】:Database size is huge数据库规模巨大
【发布时间】:2010-11-18 13:38:36
【问题描述】:

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

删除前的大小为:20 GB 删除后大小为:25 GB(包括日志文件) 缩小后大小为:13 GB

现在我不知道这 13 gig 是从哪里来的,数据库中最大的表是一个 logtable,它是 1.3 gig,其余的加起来不占用 200 mb ...

难道日志文件中还有一些数据是收缩任务无法删除的? 这个问题有解决办法吗?

【问题讨论】:

  • 你检查过日志文件和 MDF 的大小吗?
  • 您使用的是什么版本的 SQL?

标签: sql-server database size bigdata shrink


【解决方案1】:

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

根据您的情况,缩小事务日志的最简单方法之一是将恢复模式设置为简单,然后缩小事务日志文件,然后将恢复模式设置回完整。但是,如果这是生产您可能需要时间点恢复的系统,那么您应该执行事务日志的备份。

【讨论】:

【解决方案2】:

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

EXEC sp_spaceused;

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 每日备份数据库不影响日志,还必须备份日志。
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-25
      • 2017-08-22
      • 1970-01-01
      • 2013-10-19
      • 2011-03-24
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      相关资源
      最近更新 更多