数据库大小巨大

3
我有以下问题。 我们的数据库存储二进制文件。 我们知道数据库的大小可能很大,因此我们从数据库中删除了所有二进制文件,并对其使用了“收缩”任务。 这样我们希望数据库会变得更小。 这些是结果:
删除前大小为:20 GB 删除后大小为:25 GB(包括日志文件) 收缩后大小为:13 GB
现在我不知道这13GB来自哪里,数据库中最大的表是日志表,它只有1.3GB,所有其他表加起来也不到200MB...
这可能是因为收缩任务无法删除日志文件中的某些数据吗? 有解决这个问题的方法吗?

你检查过日志文件和MDF的大小吗? - RichardOD
你使用的是哪个版本的SQL? - Kev Riley
4个回答

3

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

EXEC sp_spaceused;

3
如果你的恢复模式是“完整”,并且你没有备份并缩小事务日志,那么它仍然可能很大。
根据你的情况,最简单的缩小事务日志的方法之一是将恢复模式设置为简单模式,然后缩小事务日志文件,然后将恢复模式设置回完整模式。但是,如果这是一个需要按时间点进行恢复的生产系统,则应备份事务日志。

分离并以日志文件删除的方式重新附加是另一种选择 - http://bloggingabout.net/blogs/mglaser/archive/2007/01/12/sql-server-tip-shrinking-a-sql-server-log.aspx - RichardOD
3
删除日志文件是一个非常糟糕的想法!千万别考虑! - Nick Kavadias
3
删除 t-log 文件是一个糟糕的想法。 - SQLChicken

0
请记得在采取Robin Day的建议并收缩日志后设置事务日志备份(不仅仅是数据库备份,因为它们无法像您发现的那样保持日志小)。我们的事务日志每15分钟备份一次。根据您可以承受的数据丢失量来定期备份,您的计划可能需要更频繁或更少。最少我会每天备份一次日志,以保持日志的合理大小。

每日备份数据库不会影响日志,您还必须备份日志。 - HLGEM

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接