我们有一个 ETL 过程,它将大量数据插入到表中。该数据库设置为简单恢复模式,并且事务日志增长了很多。我在想,将这个数据库设置为 Bulk-Logged Recovery Model 会有所帮助吗?我们每天都进行完整备份。那么与简单恢复模型相比,是否有一些操作没有在批量日志恢复模型中记录?
我们有一个 ETL 过程,它将大量数据插入到表中。该数据库设置为简单恢复模式,并且事务日志增长了很多。我在想,将这个数据库设置为 Bulk-Logged Recovery Model 会有所帮助吗?我们每天都进行完整备份。那么与简单恢复模型相比,是否有一些操作没有在批量日志恢复模型中记录?
如果您在简单模式下在 ETL 上记录增长,则意味着您的插入没有被最低限度地记录。最小记录的要求在可以最小记录的操作和批量导入中最小记录的先决条件中描述:
数据加载性能指南还提到了 TF 610 效果以及它如何影响最小日志记录。
在这种情况下,批量记录对您没有帮助。您的事务日志正在增长,因为您正在执行大型事务。在简单模式下,日志在checkpoint之后被截断。
根据您加载数据的方式,您可能需要将其分成更小的块。确保您没有在一个大事务中加载所有数据。
如果有的话,当从简单恢复更改为批量记录时,您的日志大小将会增加。您可能有日志正在运行的事务,或者未提交/失控的事务正在保留您的日志文件,导致它增长。