sys.dm_exec_query_resource_semaphores (Transact-SQL)

Devuelven información acerca del estado actual del semáforo de recursos de consulta. sys.dm_exec_query_resource_semaphores proporciona el estado general de ejecución de las consultas y permite determinar si el sistema tiene acceso a suficiente memoria. Esta vista complementa la información de la memoria obtenida de sys.dm_os_memory_clerks para proporcionar una imagen completa del estado de la memoria del servidor. sys.dm_exec_query_resource_semaphores devuelve una fila para el semáforo de recursos normal y otra fila para el semáforo de recursos de consultas pequeñas.

Nombre de columna

Tipo de datos

Descripción

resource_semaphore_id

smallint

Id. no único del semáforo de recursos. 0 para el semáforo de recursos normal y 1 para el semáforo de recursos de consultas pequeñas.

NotaNota
Este Id. es único en versiones de SQL Server anteriores a SQL Server 2008. Este cambio puede afectar a la solución de problemas de ejecución de la consulta. Para obtener más información, vea la sección "Notas" más adelante en este tema.

target_memory_kb

bigint

Concede el destino de uso en kilobytes.

max_target_memory_kb

bigint

Máximo destino potencial en kilobytes. Es NULL para el semáforo de recursos de consultas pequeñas.

total_memory_kb

bigint

Memoria mantenida por el semáforo de recursos en kilobytes. Si el sistema no dispone de memoria suficiente o si se concede memoria mínima forzada frecuentemente, este valor puede ser mayor que los valores de target_memory_kb o max_target_memory_kb. La memoria total es una suma de la memoria disponible y concedida.

available_memory_kb

bigint

Memoria disponible para una nueva concesión en kilobytes.

granted_memory_kb

bigint

Memoria concedida total en kilobytes.

used_memory_kb

bigint

Parte físicamente usada de la memoria concedida en kilobytes.

grantee_count

int

Número de consultas activas que tienen sus concesiones satisfechas.

waiter_count

int

Número de consultas que esperan que sus concesiones se satisfagan.

timeout_error_count

bigint

Número total de errores de tiempo de espera desde el inicio del servidor. Es NULL para el semáforo de recursos de consultas pequeñas.

forced_grant_count

bigint

Número total concesiones de memoria mínima forzada desde el inicio del servidor. Es NULL para el semáforo de recursos de consultas pequeñas.

pool_id

int

Id. del grupo de recursos de servidor al que pertenece este semáforo de recursos.

Permisos

Requiere el permiso VIEW SERVER STATE en el servidor.

Comentarios

Las consultas que utilizan vistas de administración dinámica que incluyen ORDER BY o agregados pueden aumentar el consumo de memoria y, de esta forma, contribuir al problema que están solucionando.

Use sys.dm_exec_query_resource_semaphores para solucionar problemas, pero no lo incluya en aplicaciones que utilizarán futuras versiones de SQL Server.

La función del regulador de recursos permite que un administrador de bases de datos distribuya los recursos del servidor entre los grupos de recursos de servidor, hasta un máximo de 20 fondos. En SQL Server 2008, cada fondo se comporta como una pequeña instancia independiente del servidor y requiere 2 semáforos. El número de filas devuelto por sys.dm_exec_query_resource_semaphores puede ser hasta 20 veces mayor que las filas devueltas en SQL Server 2005.