A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  special characters  sybase-tech-blog


Category: ASE: Performance and Tuning: Caches and Buffer Pools

Unpin, unpinning

Unpin is a term taken from performance monitoring in ASE. Often, this term can be found in the output of the sp_sysmon stored procedure. It describes the removal of pages from the user log cache. Unpinning of data pages happens, if two transactions try to modify the same data page at the same time. In this case, the latter of the two transactions must remove the page already cached in the ULC of ULC der ersten gecacht ist the first transaction in order to pin it to its own cache. As a consequence, the whole ULC of the first transaction will be emptied (flushed).

Example for Unpinning

A transaction modifies a data row in a table. To achive this, ASE pins the page on which the row is stored to the ULC of the executing process. When subsequent transaction wants to modify another data row on the same page, it notices that this page is already pinned to the ULC of the first transaction. It must remove the page from the ULC of the first transaction in order to modify it. For this the second transaction will flush the first transaction's ULC and thereby empty it.

There are two possible ways to avoid unpinning. One solution would be to modify the application logic to always address different data pages for modification. Or, as a second approach, distribute data to a larger number of data pages to avoid conflict, using the stored procedure sp_chgattribute with the max_rows_per_page option.