Udostępnij za pomocą


sys.dm_xtp_gc_queue_stats (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Na serwerze wychodzą informacje o każdej kolejce workerów garbage collection oraz różne statystyki dotyczące każdego z nich. Na każdy logiczny CPU jest jedna kolejka.

Główny wątek zbierania śmieci (wątek bezczynności) śledzi zaktualizowane, usunięte i wstawione wiersze wszystkich transakcji zakończonych od ostatniego wywołania głównego wątku zbierania śmieci. Gdy wątek zbierania śmieci się budzi, ustala, czy zmienił się znacznik czasu najstarszej aktywnej transakcji. Jeśli najstarsza aktywna transakcja się zmieniła, wątek bezczynny wrzuca zadania do kolejek (w częściach po 16 wierszy) dla transakcji, których zestawy zapisów nie są już potrzebne. Na przykład, jeśli usuniesz 1 024 wiersze, ostatecznie zobaczysz 64 elementy pracy w garbage collection w kolejce, z których każdy zawiera 16 usuniętych wierszy. Po zatwierdzeniu transakcji użytkownika, wybiera on wszystkie elementy w kolejce w swoim harmonogramie. Jeśli na planiście nie ma kolejek elementów, transakcja użytkownika będzie wyszukiwać w dowolnej kolejce w bieżącym węźle NUMA.

Możesz sprawdzić, czy garbage collection zwalnia pamięć na usunięte wiersze, wykonując sys.dm_xtp_gc_queue_stats, aby sprawdzić, czy praca w kolejce jest przetwarzana. Jeśli wpisy w current_queue_depth nie są przetwarzane lub nie są dodawane nowe elementy pracy do current_queue_depth, to wskazuje, że garbage collection nie uwalnia pamięci. Na przykład garbage collection nie może być przeprowadzony, jeśli transakcja trwa długo.

Aby uzyskać więcej informacji, zobacz In-Memory OLTP (In-Memory Optimization).

Nazwa kolumny Typ Description
queue_id int Unikalny identyfikator kolejki.
total_enqueues bigint Łączna liczba zadań garbage collection zaliczonych do tej kolejki od momentu uruchomienia serwera.
total_dequeues bigint Łączna liczba zadań pracy garbage collection wyciągniętych z tej kolejki od momentu uruchomienia serwera.
current_queue_depth bigint Aktualna liczba zadań pracy w garbage collection znajduje się w tej kolejce. Ten przedmiot może sugerować, że jeden lub więcej jest zbieranych śmieciami.
maximum_queue_depth bigint Maksymalna głębokość, jaką widziała ta kolejka.
last_service_ticks bigint CPU tyka w momencie, gdy kolejka była ostatnio obsługiwana.

Permissions

Wymaga uprawnień VIEW SERVER STATE.

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.

Scenariusz użytkownika

Ten wynik pokazuje, że SQL Server działa na 4 rdzeniach lub instancja SQL Server została afinityzowana do 4 rdzeni:

Ten wynik pokazuje, że w kolejkach nie ma żadnych zadań do przetworzenia. Dla kolejki 0 łączna liczba elementów roboczych wyjętych z kolejki od startu SQL wynosi 15625, a maksymalna głębokość kolejki to 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  

Zobacz także

Memory-Optimized Dynamiczne widoki zarządzania tabelą (Transact-SQL)