|
Kategorie: ASE: Performance und Tuning: Caches und Buffer Pools
Unpin, unpinning
Unpin ist ein Begriff aus dem Performance Monitoring in
ASE.
Der Begriff findet sich häufig in der Ausgabe der
Stored Procedure
sp_sysmon
und beschreibt das Entfernen von
Pages
aus
User Log Caches.
Unpinning von Datenpages geschieht dann, wenn zwei Transaktionen
versuchen die selbe Datenpage zu verändern. In dem Fall wird die spätere der
beiden Transaktionen die Page, die bereits im ULC der ersten gecacht ist
entfernen, um sie in ihren eigenen Cache zu schreiben. Dabei wird der gesamte
ULC geleert (flushed).
Beispiel für Unpinning
Eine Transaktion verändert eine bestimmte Zeile einer Tabelle.
Dazu verankert (pin) ASE die Page, auf der diese Zeile gespeichert ist,
im ULC des ausführenden Prozesses.
Versucht nun eine weitere Transaktion eine andere Tabellenzeile auf der
selben Page zu verändern, stellt sie fest, daß diese Page bereits im
ULC der ersten Transaktion verankert ist und muss die Page aus dem ULC
entfernen, um sie verändern zu können. Dazu wird der ULC der ersten
Transaktion geleert (flushed).
Um unpinning zu vermeiden, gibt es zwei Verfahrensweisen. Zum einen
eine Anpassung der Applikationslogik, damit immer unterschiedliche Pages
modifiziert werden, oder eine Verteilung der Daten auf verschiedene Datenpages
mit Hilfe der
Stored Procedure
sp_chgattribute
und der Option max_rows_per_page.
|