sys.dm_exec_query_resource_semaphores (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Devuelve la información sobre el estado actual del semáforo del recurso de consulta en SQL Server. sys.dm_exec_query_resource_semaphores proporciona el estado general de memoria de ejecución de consultas y permite determinar si el sistema puede acceder a suficiente memoria. Esta vista complementa la información de 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 normales y otra fila para el semáforo de recursos de consulta pequeña. Hay dos requisitos para un semáforo de consulta pequeña:
La concesión de memoria solicitada debe ser inferior a 5 MB.
El costo de la consulta debe ser inferior a 3 unidades de costo.
Nota:
Para llamar a esto desde Azure Synapse Analytics o Analytics Platform System (PDW), use el nombre sys.dm_pdw_nodes_exec_query_resource_semaphores
. El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.
Nombre de la 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. |
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 está bajo presión de memoria o si se concede memoria mínima forzada con frecuencia, 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. |
pdw_node_id | int | Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW) Identificador del nodo en el que se encuentra esta distribución. |
Permisos
En SQL Server y SQL Managed Instance, requiere el permiso VIEW SERVER STATE
.
En los objetivos de servicio Básico, S0 y S1 de SQL Database y para bases de datos en grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador Microsoft Entra o la pertenencia al ##MS_ServerStateReader##
rol del servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE STATE
en la base de datos o la pertenencia en el rol del servidor ##MS_ServerStateReader##
.
Permisos para SQL Server 2022 y versiones posteriores
Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR 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 los incluya en las aplicaciones que usarán versiones futuras de SQL Server.
La característica 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 64 fondos. En SQL Server 2012 (11.x) y versiones posteriores, cada grupo se comporta como una pequeña instancia de servidor independiente y requiere 2 semáforos.
Consulte también
Funciones y vistas de administración dinámica relacionadas con ejecuciones (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)