【发布时间】:2015-05-26 16:29:27
【问题描述】:
我有一个大约600 million records 的表格,表格大小大约为45 GB。我刚刚触发了一个查询以向其添加另一个 bigint 列,即它应该需要大约 4GB 来存储,即
4GB = 600 Million * 8bytes
此表上没有索引。那么为什么这个操作会占用超过 150GB 的日志文件空间。
这是我用来学习不同操作的影响的垃圾数据。
我正在寻找此问题的原因和解决方案。
【问题讨论】:
-
执行此操作之前的日志有多大。我的猜测是您没有在简单的恢复中运行,并且从未备份/截断日志。在这种情况下,它们将无限增长。
-
是的,我从未备份过我的数据库。在触发
alter statement之前,我使用DBCC SHRINKFILE缩小到 100 MB,因为空间不足。我应该截断日志而不是缩小日志吗?我的数据库在full recovery model下运行。
标签: sql-server database database-administration