sys.dm_xtp_gc_queue_stats (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Gibt Informationen über jede Garbage Collection-Arbeitsthreadwarteschlange auf dem Server sowie verschiedene Statistiken zu diesen Warteschlangen aus. Pro logische CPU ist eine Warteschlange vorhanden.

Der Garbage Collection-Hauptthread (Leerlaufthread) verfolgt aktualisierte, gelöschte und eingefügte Zeilen für alle Transaktionen nach, die seit dem letzten Aufruf des Garbage Collection-Hauptthreads abgeschlossen wurden. Sobald er aktiviert wird, überprüft der Garbage Collection-Thread, ob der Zeitstempel der ältesten aktiven Transaktion geändert wurde. Wenn die älteste aktive Transaktion geändert wurde, reiht der Leerlaufthread Arbeitselemente für Transaktionen, deren Schreibmengen nicht mehr benötigt werden, (in Segmenten von 16 Zeilen) in die Warteschlange ein. Wenn Sie z. B. 1.024 Zeilen löschen, enthält die Warteschlange schließlich 64 Garbage Collection-Arbeitselemente mit jeweils 16 gelöschten Zeilen. Nachdem für eine Benutzertransaktion ein Commit ausgeführt wurde, werden alle im zugehörigen Zeitplanungsmodul in die Warteschlange eingereihten Arbeitsaufgaben ausgewählt. Wenn die Warteschlange im Zeitplanungsmodul keine Arbeitsaufgaben enthält, werden von der Benutzertransaktion alle Warteschlangen im aktuellen NUMA-Knoten durchsucht.

Sie können feststellen, ob Arbeitsspeicher für gelöschte Zeilen durch die Garbage Collection freigegeben wird, indem Sie sys.dm_xtp_gc_queue_stats ausführen und überprüfen, ob die Arbeitsaufgaben in der Warteschlange verarbeitet werden. Wenn Einträge in der current_queue_depth nicht verarbeitet werden oder dem current_queue_depth keine neuen Arbeitselemente hinzugefügt werden, ist dies ein Hinweis darauf, dass die Garbage Collection keinen Arbeitsspeicher freigibt. Beispielsweise kann die Garbage Collection nicht durchgeführt werden, wenn eine Transaktion mit langer Ausführungsdauer vorliegt.

Weitere Informationen finden Sie unter In-Memory OLTP (Speicheroptimierung).

Spaltenname type BESCHREIBUNG
queue_id int Der eindeutige Bezeichner der Warteschlange.
total_enqueues bigint Die Gesamtanzahl von Arbeitselementen der Garbage Collection, die seit dem Start des Servers in die Warteschlange eingereiht wurden.
total_dequeues bigint Die Gesamtanzahl von Arbeitselementen der Garbage Collection, die seit dem Start des Servers aus der Warteschlange entfernt wurden.
current_queue_depth bigint Die aktuelle Anzahl von Arbeitselementen der Garbage Collection, die in dieser Warteschlange vorhanden sind. Dieses Element bedeutet möglicherweise, dass eine oder mehrere Garbage Collections durchgeführt werden sollen.
maximum_queue_depth bigint Die maximale Tiefe, die diese Warteschlange aufgewiesen hat.
last_service_ticks bigint CPU-Takte zu dem Zeitpunkt, als die Warteschlange zuletzt aktiv war.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung.

Berechtigungen für SQL Server 2022 und höher

Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.

Benutzerszenario

Diese Ausgabe zeigt, dass SQL Server entweder auf 4 Kernen ausgeführt wird oder SQL Server Instanz mit 4 Kernen affinitiert wurde:

Diese Ausgabe veranschaulicht, dass in den Warteschlangen keine zu verarbeitenden Arbeitselemente enthalten sind. Für Warteschlange 0 beträgt die Gesamtsumme der Arbeitselemente, die seit dem SQL-Start in die Warteschlange entfernt wurden, 15625, und die maximale Warteschlangentiefe beträgt 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  

Weitere Informationen

Dynamische Verwaltungssichten für speicheroptimierte Tabellen (Transact-SQL)