sys.dm_xtp_gc_queue_stats (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
Genera información y distintas estadísticas sobre cada cola de trabajador de recolección de elementos no utilizados en el servidor. Hay una cola por cada CPU lógica.
El subproceso principal de recolección de elementos no utilizados (el subproceso inactivo) hace un seguimiento de las filas actualizadas, eliminadas e insertadas de todas las transacciones completadas desde la última invocación del subproceso principal de recolección de elementos no utilizados. Cuando el subproceso de recolección de elementos no utilizados se reactiva, determina si la marca de tiempo de la transacción activa más antigua ha cambiado. Si la transacción activa más antigua ha cambiado, el subproceso inactivo pone en cola elementos de trabajo (en fragmentos de 16 filas) para las transacciones cuyos conjuntos de escritura no son ya necesarios. Por ejemplo, si elimina 1.024 filas, en la cola habrá 64 elementos de trabajo no utilizados recopilados, cada uno de los cuales contiene 16 filas eliminadas. Una vez que una transacción de usuario se confirma, selecciona todos los elementos puestos en cola en su programador. Si no hay ningún elemento en cola en su programador, la transacción de usuario buscará en todas las colas del nodo NUMA actual.
Es posible determinar si la recolección de elementos no utilizados está liberando memoria para las filas eliminadas; para ello, ejecute sys.dm_xtp_gc_queue_stats para ver si el trabajo puesto en cola se está procesando. Si las entradas de la current_queue_depth no se están procesando o si no se agregan elementos de trabajo nuevos a la current_queue_depth, se trata de una indicación de que la recolección de elementos no utilizados no está liberando memoria. Por ejemplo, no se puede realizar la recolección de elementos no utilizados si hay una transacción de larga duración.
Para obtener más información, vea OLTP en memoria (optimización en memoria).
Nombre de la columna | Tipo | Descripción |
---|---|---|
queue_id | int | Identificador único de la cola. |
total_enqueues | bigint | El número total de elementos de trabajo de la recolección de elementos no utilizados puestos en esta cola desde que se inició el servidor. |
total_dequeues | bigint | El número total de elementos de trabajo de la recolección de elementos no utilizados quitados de esta cola desde que se inició el servidor. |
current_queue_depth | bigint | El número actual de elementos de trabajo de la recolección de elementos no utilizados presentes en esta cola. Este elemento puede implicar que el recolector de elementos no utilizados elimine varios de ellos. |
maximum_queue_depth | bigint | La profundidad máxima que ha visto esta cola. |
last_service_ticks | bigint | Los tics de CPU en el momento en que se dio servicio a la cola por última vez. |
Permisos
Requiere el permiso VIEW SERVER STATE.
Permisos para SQL Server 2022 y versiones posteriores
Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.
Escenario de usuario
Esta salida muestra que SQL Server se ejecuta en 4 núcleos o en una instancia de SQL Server se ha afinidad con 4 núcleos:
Este resultado muestra que no hay elementos de trabajo en las colas que se van a procesar. Para la cola 0, el total de elementos de trabajo en cola desde el inicio de SQL es 15625 y la profundidad máxima de la cola ha sido 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
Consulte también
Vistas de administración dinámica de tablas optimizadas para memoria (Transact-SQL)