sys.dm_db_xtp_gc_cycle_stats (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Gibt den aktuellen Status der zugesicherten Transaktionen aus, die mindestens eine Zeile gelöscht haben. Der Garbage Collection-Leerlaufthread wird einmal pro Minute ausgeführt oder wenn die Anzahl der DML-Transaktionen, für die ein Commit ausgeführt wurde, seit dem letzten Zyklus der Garbage Collection einen internen Schwellenwert überschreitet. Im Rahmen des Garbage Collection-Zyklus werden zugesicherte Transaktionen in eine oder mehrere Warteschlangen verschoben, die Generationen zugeordnet sind. Die Transaktionen, die veraltete Versionen generiert haben, werden in einer Einheit von 16 Transaktionen über 16 Generationen hinweg gruppiert:

  • Generierung 0: Speichert alle Transaktionen, für die vor der ältesten aktiven Transaktion ein Commit ausgeführt wurde. Von diesen Transaktionen generierte Zeilenversionen stehen sofort für die Garbage Collection zur Verfügung.

  • Generierungen 1-14: Speichern Transaktionen, deren Zeitstempel nach der ältesten aktiven Transaktion liegt. Die Zeilenversionen können nicht von der Garbage Collection bereinigt werden. Jede Generierung kann bis zu 16 Transaktionen enthalten. In den Generierungen können insgesamt 224 (14 * 16) Transaktionen gespeichert werden.

  • Generierung 15: Enthält die übrigen Transaktionen, deren Zeitstempel nach der ältesten aktiven Transaktion liegt. Die Anzahl der Transaktionen in Generierung 15 ist genauso wie bei Generierung 0 unbegrenzt.

Bei unzureichendem Arbeitsspeicher wird der Hinweis auf die älteste aktive Transaktion vom Garbage Collection-Thread aggressiv aktualisiert, wodurch eine Garbage Collection erzwungen wird.

Weitere Informationen finden Sie unter In-Memory OLTP (Speicheroptimierung).

Spaltenname type Beschreibung
cycle_id bigint Ein eindeutiger Bezeichner für den Zyklus der Garbage Collection.
ticks_at_cycle_start bigint Takte, bei denen der Zyklus gestartet wurde.
ticks_at_cycle_end bigint Takte, bei denen der Zyklus beendet wurde.
base_generation bigint Der aktuelle Basisgenerierungswert in der Datenbank. Dieser entspricht dem Zeitstempel der ältesten aktiven Transaktion, mit dessen Hilfe Transaktionen für die Garbage Collection identifiziert werden. Die älteste aktive Transaktions-ID wird im Inkrement von 16 aktualisiert. Wenn Beispielsweise Transaktions-IDs als 124, 125, 126 ... 139, der Wert ist 124. Wenn Sie eine weitere Transaktion hinzufügen, z. B. 140, lautet der Wert 140.
xacts_copied_to_local bigint Die Anzahl der Transaktionen, die aus der Transaktionspipeline in das Generierungsarray der Datenbank kopiert wurden.
xacts_in_gen_0 - xacts_in_gen_15 bigint Die Anzahl der Transaktionen in jeder Generierung.

Berechtigungen

Erfordert die VIEW DATABASE STATE-Berechtigung für die Datenbank.

Berechtigungen für SQL Server 2022 und höher

Erfordert DIE BERECHTIGUNG "DATENBANKLEISTUNGSSTATUS ANZEIGEN" für die Datenbank.

Verwendungsszenario

Im Folgenden eine Beispielausgabe. Zu sehen sind eine Teilmenge der Spalten und 27 Generierungen:

cycle_id   ticks_at_cycle_start ticks_at_cycle_end   base_generation  xacts_in_gen_0    xacts_in_gen_1  
  
1          123160509            123160509            1                    0                    0  
2          123176822            123176822            1                    0                    1  
3          123236826            123236826            1                    0                    1  
4          123296829            123296829            1                    0                    1  
5          123356832            123356941            129                  0                    0  
6          123357473            123357473            129                  0                    0  
7          123417486            123417486            129                  0                    0  
8          123477489            123477489            129                  0                    0  
9          123537492            123537492            129                  0                    0  
10         123597500            123597500            129                  0                    0  
11         123657504            123657504            129                  0                    0  
12         123717507            123717507            129                  0                    0  
13         123777510            123777510            129                  0                    0  
14         123837513            123837513            129                  0                    0  
15         123897516            123897516            129                  0                    0  
16         123957516            123957516            129                  0                    0  
17         124017516            124017516            129                  0                    0  
18         124077517            124077517            129                  0                    0  
19         124137517            124137517            129                  0                    0  
20         124197518            124197518            129                  0                    0  
21         124257518            124257518            129                  0                    0  
22         124317523            124317523            129                  0                    0  
23         124377526            124377526            129                  0                    0  
24         124437529            124437529            129                  0                    0  
25         124497533            124497533            129                  0                    0  
26         124557536            124557536            129                  0                    0  
27         124617539            124617539            129                  0                    0