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)