Compartir vía


sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores de Azure SQL Database Azure SQL Instancia administrada

Devuelve el estado actual de los semáforos de recursos usados para limitar la optimización simultánea de consultas.

Columna Type Descripción
pool_id int Identificador del grupo de recursos en Resource Governor
name sysname Nombre de puerta de compilación (Puerta de enlace pequeña, Puerta de enlace mediana, Puerta de enlace grande)
max_count int Recuento máximo configurado de compilaciones simultáneas
active_count int Recuento activo actualmente de compilaciones en esta puerta
waiter_count int El número de esperas de esta puerta
threshold_factor bigint Factor de umbral que define la parte de memoria máxima utilizada por la optimización de consultas. Para la puerta de enlace pequeña, threshold_factor indica el uso máximo de memoria del optimizador en bytes para una consulta antes de que sea necesario obtener un acceso en la puerta de enlace pequeña. Para la puerta de enlace mediana y grande, threshold_factor muestra la parte de la memoria total del servidor disponible para esta puerta. Se usa como divisor al calcular el umbral de uso de memoria para la puerta.
threshold bigint Memoria de umbral siguiente en bytes. La consulta es necesaria para obtener acceso a esta puerta de enlace si su consumo de memoria alcanza este umbral. "-1" si la consulta no es necesaria para obtener acceso a esta puerta de enlace.
is_active bit Indica si la consulta es necesaria para pasar la puerta actual o no.

Permisos

SQL Server requiere el permiso VIEW SERVER STATE en el servidor.

Azure SQL Database requiere el permiso VIEW DATABASE STATE en la base de datos.

Permisos para SQL Server 2022 y versiones posteriores

Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.

Comentarios

SQL Server usa un enfoque de puerta de enlace en capas para limitar el número de compilaciones simultáneas permitidas. Se usan tres puertas de enlace, incluidas pequeñas, medianas y grandes. Las puertas de enlace ayudan a evitar el agotamiento de los recursos de memoria generales mediante una mayor cantidad de consumidores que requieren memoria de compilación.

Las esperas en una puerta de enlace producen una compilación retrasada. Además de los retrasos en la compilación, las solicitudes limitadas tendrán asociada una acumulación de tipos de espera RESOURCE_SEMAPHORE_QUERY_COMPILE. El tipo de espera RESOURCE_SEMAPHORE_QUERY_COMPILE puede indicar que las consultas usan una gran cantidad de memoria para la compilación y que se ha agotado la memoria, o bien que hay suficiente memoria disponible en general, pero se han agotado las unidades disponibles en una puerta de enlace específica. La salida de sys.dm_exec_query_optimizer_memory_gateways se puede usar para solucionar problemas de escenarios en los que no había memoria suficiente para compilar un plan de ejecución de consultas.

Ejemplos

A Visualización de estadísticas en semáforos de recursos

¿Cuáles son las estadísticas actuales de la puerta de enlace de memoria del optimizador para esta instancia de SQL Server?

SELECT [pool_id], [name], [max_count], [active_count],
       [waiter_count], [threshold_factor], [threshold],
       [is_active]
FROM sys.dm_exec_query_optimizer_memory_gateways;   

Consulte también

Funciones y vistas de administración dinámica (Transact-SQL)
Funciones y vistas de administración dinámica relacionadas con ejecuciones (Transact-SQL)
Uso del comando DBCC MEMORYSTATUS para supervisar el uso de memoria en SQL Server 2005Large Query Waits on RESOURCE_SEMAPHORE_QUERY_COMPILE in SQL Server 2014