Partager via


sys.dm_xtp_gc_queue_stats (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Génère des informations sur chaque file d'attente de travaux de garbage collection sur le serveur, ainsi que diverses statistiques sur chacune d'entre elles. Il existe une file d'attente par processeur logique.

Le thread garbage collection principal (le thread inactif) trace les lignes mises à jour, supprimées et insérées de toutes les transactions terminées depuis la dernière invocation du thread de garbage collection principal. Lorsque le thread de garbage collection s'exécute, il détermine si l'horodateur de la transaction active la plus ancienne a changé. Si la transaction active la plus ancienne a changé, alors le thread inactif empile les éléments de travail (par segments de 16 lignes) pour les transactions dont les jeux d'écritures ne sont plus requis. Par exemple, si vous supprimez 1 024 lignes, vous verrez 64 éléments de travail de garbage collection en file d'attente, chacun contenant 16 lignes supprimées. Après qu'une transaction utilisateur est validée, elle sélectionne tous les éléments empilés de son planificateur. S'il n'y a pas d'éléments empilés sur le planificateur, elle recherche des éléments sur toutes les files d'attente dans le nœud NUMA.

Vous pouvez déterminer si le garbage collection libère de la mémoire pour les lignes supprimées en exécutant sys.dm_xtp_gc_queue_stats pour voir si le travail empilé est traité. Si les entrées de l’current_queue_depth ne sont pas traitées ou si aucun nouvel élément de travail n’est ajouté à l’current_queue_depth, il s’agit d’une indication que le garbage collection ne libère pas de mémoire. Par exemple, le garbage collection ne peut pas être effectué s’il existe une transaction longue.

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

Nom de la colonne Type Description
queue_id int Identificateur unique de la file d'attente.
total_enqueues bigint Nombre total d'éléments de travail garbage collection empilés dans cette file d'attente depuis que le serveur a démarré.
total_dequeues bigint Nombre total d'éléments de travail garbage collection dépilés de cette file d'attente depuis que le serveur a démarré.
current_queue_depth bigint Nombre actuel d'éléments de travail garbage collection présents dans la file d'attente. Cet élément peut impliquer un ou plusieurs éléments récupérés par le garbage collector.
maximum_queue_depth bigint Profondeur maximale de cette file d'attente.
last_service_ticks bigint Cycles de l'UC au moment où la file d'attente a été traitée pour la dernière fois.

autorisations

Nécessite l’autorisation VIEW SERVER STATE.

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

Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.

Scénario d'utilisateur

Cette sortie montre que SQL Server s’exécute sur 4 cœurs ou que l’instance SQL Server a été affiniténée à 4 cœurs :

Ce résultat montre qu'il n'existe aucun élément de travail à traiter dans les files d'attente. Pour la file d’attente 0, le nombre total d’éléments de travail supprimés depuis le démarrage de SQL est 15625 et la profondeur maximale de la file d’attente est de 15625.

queue_id total_enqueues total_dequeues current_queue_depth  maximum_queue_depth  last_service_ticks  
----------------------------------------------------------------------------------------------------  
0        15625                15625    0                    15625                1233573168347  
1        15625                15625    0                    15625                1234123295566  
2        15625                15625    0                    15625                1233569418146  
3        15625                15625    0                    15625                1233571605761  

Voir aussi

Vues de gestion dynamique de table optimisées en mémoire (Transact-SQL)