Condividi tramite


sys.dm_xtp_gc_queue_stats (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Informazioni di output su ogni coda di lavoro di Garbage Collection nel server e varie statistiche su ognuna. Esiste una coda per CPU logica.

Il thread principale di Garbage Collection (thread inattivo) tiene traccia delle righe aggiornate, eliminate e inserite per tutte le transazioni completate adll'ultima chiamata del thred principale di Garbage Collection. Il thread di Garbage Collection una volta attivato determina se il timestamp della transazione attiva meno recente è cambiato. Se la transazione attiva meno recente è cambiata, il thread inattivo accoda gli elementi di lavoro (in blocchi di 16 righe) delle transazioni i cui set di scrittura non sono più necessari. Ad esempio, se si eliminano 1.024 righe, verranno accodati 64 elementi di lavoro di Garbage Collection ciascuno contenente 16 righe eliminate. Dopo il commit di una transazione utente, vengono selezionati tutti gli elementi accodati nell'utilità di pianificazione. Se non vi sono elementi accodati nell'utilità di pianificazione, la transazione utente cercherà in ogni coda del nodo NUMA corrente.

È possibile determinare se Garbage Collection libera la memoria delle righe eliminate eseguendo sys.dm_xtp_gc_queue_stats per vedere se il lavoro accodato viene eseguito. Se le voci nel current_queue_depth non vengono elaborate o se non vengono aggiunti nuovi elementi di lavoro al current_queue_depth, si tratta di un'indicazione che Garbage Collection non libera memoria. Ad esempio, la Procedura di Garbage Collection non può essere eseguita se è presente una transazione a esecuzione prolungata.

Per altre informazioni, vedere OLTP in memoria (ottimizzazione per la memoria).

Nome colonna Tipo Descrizione
queue_id int Identificatore univoco della coda.
total_enqueues bigint Numero totale degli elementi di lavoro di Garbage Collection nella coda dall'avvio del server.
total_dequeues bigint Numero totale degli elementi di lavoro di Garbage Collection rimossi dalla coda dall'avvio del server.
current_queue_depth bigint Numero corrente di elementi di lavoro di Garbage Collection presenti nella coda. Questo elemento potrebbe implicare la raccolta di uno o più elementi da parte di Garbage Collection.
maximum_queue_depth bigint Profondità massima della coda.
last_service_ticks bigint Tick della CPU quando è stata servita la coda.

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.

Scenario utente

Questo output mostra che SQL Server è in esecuzione su 4 core o l'istanza di SQL Server è stata affinizzata con 4 core:

Nell'output viene mostrato che non esistono elementi di lavoro nelle code da elaborare. Per la coda 0, gli elementi di lavoro totali de coda dopo l'avvio di SQL sono 15625 e la profondità massima della coda è stata 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  

Vedi anche

Viste a gestione dinamica delle tabelle ottimizzate per la memoria (Transact-SQL)