sys.dm_db_xtp_gc_cycle_stats (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Génère l’état actuel des transactions validées qui ont supprimé une ou plusieurs lignes. Le thread garbage collection inactif s'exécute toutes les minutes, ou lorsque le nombre de transactions DML validées dépasse un seuil interne depuis le dernier cycle de garbage collection. Dans le cadre du cycle de garbage collection, les transactions validées se déplacent dans une ou plusieurs files d’attente associées à des générations. Les transactions qui ont généré des versions obsolètes sont regroupées dans une unité de 16 transactions sur 16 générations comme suit :

  • Génération 0 : stocke toutes les transactions validées avant la transaction active la plus ancienne. Les versions de ligne générées par ces transactions sont immédiatement disponibles pour le garbage collection.

  • Générations 1-14 : stockent toutes les transactions avec un horodateur supérieur à la transaction active la plus ancienne. Les versions de ligne ne peuvent pas être récupérées par le garbage collector. Chaque génération peut contenir jusqu'à 16 transactions. 224 (14 * 16) transactions au total peuvent exister dans ces générations.

  • Générations 15 : les transactions restantes avec un horodateur supérieur à la transaction active la plus ancienne vont dans la génération 15. Similairement à la génération 0, il n'y a pas de limite au nombre de transactions dans la génération 15.

En cas de sollicitation de la mémoire, le thread de garbage collection force la mise à jour de l'indicateur de la transaction active la plus ancienne, ce qui force le garbage collection.

Pour plus d’informations, consultez OLTP en mémoire (optimisation en mémoire).

Nom de la colonne Type Description
cycle_id bigint Identificateur unique pour le cycle de garbage collection.
ticks_at_cycle_start bigint Graduations au démarrage du cycle.
ticks_at_cycle_end bigint Graduations à la fin du cycle.
base_generation bigint Valeur de génération de base actuelle dans la base de données. Cela représente l'horodateur de la transaction active la plus ancienne utilisé pour identifier les transactions pour le garbage collection. L’ID de transaction actif le plus ancien est mis à jour par incrément de 16. Par exemple, si vous avez des ID de transaction comme 124, 125, 126 ... 139, la valeur est 124. Lorsque vous ajoutez une autre transaction, par exemple 140, la valeur est 140.
xacts_copied_to_local bigint Nombre de transactions copiées du pipeline de transactions dans le tableau de génération de la base de données.
xacts_in_gen_0 - xacts_in_gen_15 bigint Nombre de transactions dans chaque génération.

Autorisations

Requiert l'autorisation VIEW DATABASE STATE sur la base de données.

Autorisations pour SQL Server 2022 (et versions plus récentes)

Nécessite l’autorisation VIEW DATABASE PERFORMANCE STATE sur la base de données.

Scénario d'utilisation

Voici un exemple de résultat avec un sous-ensemble de colonnes, montrant 27 générations :

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