Any Logging Mode DMLs


by End Transaction

A high value for “by End Transaction” indicates a healthy number of short, simple transactions.


by Change of Database

The ULC is flushed every time there is a database change. If this value is high, consider decreasing the size of the ULC if it is greater than 2K.


by Unpin

“Unpinning” occurs when two transactions attempt to update the same data page, causing the second transaction to flush the first transaction’s user log cache, unpinning the data page from the first transaction’s ULC.

Adaptive Server typically uses row-level locking for increased concurrency, since both transactions are trying to update the same page.

Unpinning occurs when:

  1. Transaction T1 updates row R1.

  2. Adaptive Server logs the update in P1’s ULC, ensuring that this data page is pinned to T1’s ULC.

  3. When T2 tries to update a different row on page P1, it finds that this page is pinned to T1’s ULC.

  4. To update the page, T2 flushes T1’s ULC, unpinning the data page.

To reduce the number of unpins:


by Log markers

A high value for “by Log markers” indicates that Adaptive Server is flushing the ULCs because of permanent log marker scans (a permanent log marker scan indicate that syslogs includes the log record). Adaptive Server uses the log records for operations like executing triggers, rollbacks, aborts, and so on. When Adaptive Server needs a permanent log marker but does not have one, it flushes the ULC to create a new log marker.

When “by Log markers” displays a large percentage of ULC flushes, you may need to reduce the number of unnecessary or redundant triggers, rollbacks, or aborts.


by System Log Record and By Other

If either of these values is higher than approximately 20%, and the size of your ULC is more than 2048, consider reducing the ULC size.

Check sections of your sp_sysmon report that relate to log activity: