sys.dm_xtp_gc_queue_stats (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Ger information om varje skräpsamlingskö på servern och olika statistik om varje. Det finns en kö per logisk CPU.

Den huvudsakliga tråden för skräpsamling (Idle-tråden) spårar uppdaterade, raderade och insatta rader för alla transaktioner som slutförts sedan den senaste anropelsen av huvudtråden för skräpsamling. När tråden för skräpsamling vaknar avgör den om tidsstämpeln för den äldsta aktiva transaktionen har ändrats. Om den äldsta aktiva transaktionen har ändrats, så köar den inaktiva tråden arbetsobjekt (i delar om 16 rader) för transaktioner vars skrivuppsättningar inte längre behövs. Till exempel, om du raderar 1 024 rader, kommer du så småningom att se 64 arbetsobjekt i garbage collection-arbeten i kö, var och en innehållande 16 raderade rader. Efter att en användartransaktion har commitat väljer den alla köade objekt i sin schemaläggare. Om det inte finns några köade objekt på dess schemaläggare kommer användartransaktionen att söka på vilken kö som helst i den aktuella NUMA-noden.

Du kan avgöra om garbage collection frigör minne för raderade rader genom att köra sys.dm_xtp_gc_queue_stats för att se om det köade arbetet bearbetas. Om poster i current_queue_depth inte bearbetas eller om inga nya arbetsobjekt läggs till i current_queue_depth, är detta en indikation på att skräpsamling inte frigör minnet. Till exempel kan skräpsamling inte göras om det finns en långvarig transaktion.

Mer information finns i In-Memory OLTP (In-Memory Optimization).

Kolumnnamn Typ Description
queue_id int Den unika identifieraren för kön.
total_enqueues bigint Det totala antalet arbetsobjekt för skräpsamling som lagts i kö i denna kö sedan servern startade.
total_dequeues bigint Det totala antalet skräpsamlingsarbetsobjekt som tagits bort från denna kö sedan servern startade.
current_queue_depth bigint Det nuvarande antalet arbetsobjekt för sophämtning finns i denna kö. Denna vara kan innebära att en eller flera ska samlas in som sophämtare.
maximum_queue_depth bigint Det maximala djupet den här kön har sett.
last_service_ticks bigint CPU-ticks vid den tidpunkt då kön senast servades.

Permissions

Kräver behörighet VIEW SERVER STATE.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Användarscenario

Denna utdata visar att SQL Server antingen körs på 4 kärnor eller att SQL Server-instansen har affiniterats till 4 kärnor:

Denna utdata visar att det inte finns några arbetsobjekt i köerna att bearbeta. För kö 0 är det totala antalet arbetsobjekt som lagts ur kön sedan SQL-start 15625 och maxködjupet har varit 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  

Se även

Memory-Optimized Tabelldynamiska hanteringsvyer (Transact-SQL)