代码之家  ›  专栏  ›  技术社区  ›  Andrew

SQL Server 2005事务日志条目:LOP_格式_页面

  •  3
  • Andrew  · 技术社区  · 16 年前

    使用::fn_dblog(null,null)函数检查事务日志操作和操作的上下文,日志扩展几乎完全取决于在LCX_堆上下文上记录LOP_格式_页面操作(97%的扩展是该操作,对于单个数据加载,日志中出现的次数超过600k。)

    有鉴于此,我应该能够颠倒逻辑,理解导致这种情况的因果链是什么,并且能够在适当的情况下修改ETL。

    2 回复  |  直到 16 年前
        1
  •  3
  •   Justin Grant    16 年前

    你是对的,这是非常薄(又名不是!)记录在案。我在圆木里面做了一些小检查,做了一个 许多 日志缩减工作(主要是通过确保批量插入实际上是批量完成的!)。所以我知道这可能是一个挑战。

    看过上下文中使用的LOP_FORMAT_页面后,我的最佳猜测是,它正在清除一个新页面——例如,当该页面已满且需要创建另一个条目时,拆分索引页面。因此,如果这个假设是正确的,那么您可能希望跟踪导致大量新页面被分配的原因。

    当您看到日志扩展时,您知道ETL中正在进行哪些操作吗?理解这一点会很有帮助——如果可能的话,请将这些信息添加到您的问题中。

    此外,您是否能够在测试环境中运行和更改ETL代码?与其找出这个难以理解的日志记录定义,不如通过运行ETL来隔离问题,同时注释出一些步骤(或限制受影响的行数),然后查看哪些更改可以消除问题。

        2
  •  0
  •   UncleO    16 年前

    我想你和贾斯汀已经找到了答案,但并没有那么复杂。

        3
  •  0
  •   user2091150    6 年前

    我以为 LOP_FORMAT_PAGE 也只有格式化页面。但是,如果数组的计数为1,则它包含整页数据,或者包含数据(页眉加记录)的部分页面,并从第二个数组的页末偏移到记录。

    推荐文章