Delen via


sys.dm_db_xtp_gc_cycle_stats (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Geeft de huidige status van gecommitteerde transacties die één of meer rijen hebben verwijderd. De inactieve garbage collection-thread wordt elke minuut wakker of wanneer het aantal gecommitteerd DML-transacties een interne drempel overschrijdt sinds de laatste garbage collection-cyclus. Als onderdeel van de garbage collection-cyclus verplaatsen gecommitteerde transacties zich in één of meer wachtrijen die aan generaties zijn gekoppeld. De transacties die verouderde versies hebben gegenereerd, zijn gegroepeerd in een eenheid van 16 transacties verdeeld over 16 generaties als volgt:

  • Generatie-0: Dit slaat alle transacties op die eerder zijn toegewezen dan de oudste actieve transactie. Rijversies die door deze transacties worden gegenereerd, zijn direct beschikbaar voor garbage collection.

  • Generaties 1-14: Slaat transacties op met een tijdstempel groter dan de oudste actieve transactie. De rijversies kunnen niet als garbage collect worden gebruikt. Elke generatie kan tot 16 transacties bevatten. In totaal kunnen er in deze generaties 224 (14 * 16) transacties bestaan.

  • Generatie 15: De overige transacties met een tijdstempel groter dan de oudste actieve transactie gaan naar generatie 15. Net als bij generatie-0 is er geen limiet aan het aantal transacties in generatie-15.

Wanneer er geheugendruk is, werkt de garbage collection-thread de oudste actieve transactiehint agressief bij, wat garbage collection afdwingt.

Zie In-Memory OLTP (In-Memory Optimization) voor meer informatie.

Kolomnaam Typologie Description
cycle_id bigint Een unieke identificatie voor de afvalverzamelcyclus.
ticks_at_cycle_start bigint Tikken op het moment dat de cyclus begon.
ticks_at_cycle_end bigint Tikken op het moment dat de cyclus eindigde.
base_generation bigint De huidige basisgeneratiewaarde in de database. Dit vertegenwoordigt de tijdstempel van de oudste actieve transactie die wordt gebruikt om transacties voor garbage collection te identificeren. De oudste actieve transactie-ID wordt bijgewerkt in de increment van 16. Als je bijvoorbeeld transactie-ID's hebt als 124, 125, 126 ... 139, de waarde is 124. Wanneer je een andere transactie toevoegt, bijvoorbeeld 140, is de waarde 140.
xacts_copied_to_local bigint Het aantal transacties dat uit de transactiepijplijn wordt gekopieerd naar de generatiearray van de database.
xacts_in_gen_0 - xacts_in_gen_15 bigint Aantal transacties per generatie.

Permissions

Vereist de machtiging VIEW DATABASE STATE voor de database.

Machtigingen voor SQL Server 2022 en hoger

Hiervoor is de machtiging VIEW DATABASE PERFORMANCE STATE vereist voor de database.

Gebruiksscenario

Hier is een voorbeeldoutput met een subset kolommen, die 27 generaties toont:

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