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.
Nota
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.
Notas
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.