3

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

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

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

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

4

4 回答 4

3

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

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

于 2009-08-11T10:05:05.417 回答
3

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

EXEC sp_spaceused;
于 2009-08-11T10:43:39.410 回答
0

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

于 2009-08-11T13:13:53.710 回答
0

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

于 2009-08-11T15:22:01.710 回答