Delen via


sys.dm_xtp_gc_queue_stats (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Geeft informatie over elke garbage collection worker-wachtrij op de server, en diverse statistieken over elk. Er is één wachtrij per logische CPU.

De hoofd-garbage collection-thread (de Idle-thread) houdt bijgewerkte, verwijderde en ingevoegde rijen bij voor alle transacties die sinds de laatste aanroep van de hoofd-garbage collection-thread zijn voltooid. Wanneer de garbage collection-thread ontwaakt, bepaalt deze of de tijdstempel van de oudste actieve transactie is veranderd. Als de oudste actieve transactie is veranderd, dan zet de idle-thread werkitems in de rij (in stukken van 16 rijen) voor transacties waarvan de schrijfsets niet langer nodig zijn. Als je bijvoorbeeld 1.024 rijen verwijdert, zie je uiteindelijk 64 garbage collection-werkitems in de wachtrij, elk met 16 verwijderde rijen. Nadat een gebruikerstransactie is gecommed, selecteert het alle genoteerde items in zijn scheduler. Als er geen gequeuede items op de scheduler staan, zal de gebruikerstransactie zoeken op elke wachtrij in de huidige NUMA-knoop.

Je kunt bepalen of garbage collection geheugen vrijmaakt voor verwijderde rijen door sys.dm_xtp_gc_queue_stats uit te voeren om te zien of het in de wachtrij geplaatste werk wordt verwerkt. Als de vermeldingen in de current_queue_depth niet worden verwerkt of als er geen nieuwe werkitems aan de current_queue_depth worden toegevoegd, is dit een aanwijzing dat garbage collection geen geheugen vrijmaakt. Bijvoorbeeld, garbage collection kan niet worden uitgevoerd als er een langdurige transactie is.

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

Kolomnaam Typologie Description
queue_id int De unieke identificatie van de wachtrij.
total_enqueues bigint Het totale aantal garbage collection-werkitems dat sinds de start van de server in deze wachtrij is geplaatst.
total_dequeues bigint Het totale aantal garbage collection-werkitems dat sinds de start van de server uit deze wachtrij is gehaald.
current_queue_depth bigint Het huidige aantal afvalinzamelingswerkitems dat op deze wachtrij aanwezig is. Dit item kan betekenen dat er één of meer afvalverzameling nodig zijn.
maximum_queue_depth bigint De maximale diepgang die deze wachtrij heeft gekend.
last_service_ticks bigint CPU-ticks op het moment dat de wachtrij voor het laatst werd onderhouden.

Permissions

Vereist toestemming VIEW SERVER STATE.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Gebruikersscenario

Deze output toont aan dat SQL Server ofwel op 4 cores draait of dat de SQL Server-instantie is affinitized naar 4 cores:

Deze output toont aan dat er geen werkitems in de wachtrijen zijn om te verwerken. Voor wachtrij 0 zijn de totale werkitems die sinds SQL Startup zijn verwijderd 15625 en de maximale wachtrijdiepte is 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  

Zie ook

Memory-Optimized Dynamische Beheerweergaven van tabellen (Transact-SQL)