title: Explanation for the fn_dblog() function's output on SQL Server 2008 R2
body: <p>I have a query to get me some basic information regarding the transaction log (<code>.ldf</code>) file.  Here it is:</p>
  
  <pre><code>WITH CTE AS
  (
      SELECT
          AllocUnitName,
          Operation,
          Context,
          [Lock Information],
          SUM(CONVERT(BIGINT, [Log Record Length])) AS TotalTranLogBytes,
          SUM(CONVERT(BIGINT, [Log Record Length])) * 100 /
              SUM(CONVERT(MONEY, SUM(CONVERT(BIGINT, [Log Record Length]))))
              OVER() AS PercentOfLog
      FROM
          sys.fn_dblog(NULL,NULL)
      GROUP BY
          AllocUnitName,
          Operation,
          Context,
          [Lock Information]
  )
  
  SELECT
      AllocUnitName,
      Operation,
      Context,
      [Lock Information],
      TotalTranLogBytes,
      PercentOfLog
  FROM
      CTE
  WHERE
      PercentOfLog &gt;= 0
  ORDER BY
      TotalTranLogBytes DESC
  </code></pre>
  
  <p>Unfortunately, I don't actually understand the output...  I'm primarily concerned with only the very top row from that query's results, it's the largest amount of space used in the transaction log, simple!</p>
  
  <p>However, there are other columns, <code>AllocUnitName</code>, <code>Operation</code> and <code>Context</code>.  In my case, I get:</p>
  
  <pre><code>dbo.MyMassiveTable.PK_MyMassiveTable    LOP_MODIFY_ROW  LCX_TEXT_MIX        3848564 61.6838
  </code></pre>
  
  <p>...as my output.  But what on EARTH does <code>LOP_MODIFY_ROW</code>, and <code>LCX_TEXT_MIX</code> actually MEAN?</p>
  
  <p>Obviously I can vaguely understand that it's something to do with the primary key for that table, that it's associated with an UPDATE command, and that there was something happening with a Text column?</p>
  
  <p>But I need precision!</p>
  
  <p>Anyone that can help me understand why this particular part of the transaction log is so HUGE would be a great help!</p>