我正在调查一个与ETL处理相关的问题,尽管数据库设置为批量记录模式(并非伪简单但真正的批量记录),但日志仍然会大幅度扩展。
使用 ::fn_dblog(null,null) 函数检查事务日志操作和操作上下文后,发现日志扩展主要是由 LOP_FORMAT_PAGE 操作在 LCX_Heap 上下文中记录导致的。(对于单个数据加载,该操作占据了 97% 的扩展,出现在日志中超过 600k 次。)
问题是,lop_format_page 记录了 SQL 所做的什么操作?
如果能够理解导致此结果的原因 / 影响链条,并根据需要修改 ETL,则应该能够反向推导逻辑。
我不指望有多少人遇到过这个问题,因为操作和上下文的可用细节很少或者没有。