sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)

Aplica-se a: simSQL Server 2016 (13.x) e posterior SimBanco de Dados SQL do Azure SimInstância Gerenciada do Azure SQL

Retorna o status atual dos semáforos de recurso usados para acelerar a otimização de consulta simultânea.

Coluna Tipo Descrição
pool_id int ID do pool de recursos em Resource Governor
name sysname Compilar o nome do portão (Gateway Pequeno, Gateway Médio, Gateway Grande)
max_count int A contagem máxima configurada de compiladores simultâneos
active_count int A contagem ativa de compiladores neste portão no momento
waiter_count int O número de empregadas neste portão
threshold_factor bigint Fator de limite que define a parte máxima de memória usada pela otimização de consulta. Para o gateway pequeno, threshold_factor indica o uso máximo de memória do otimizador em bytes para uma consulta antes que seja necessário obter um acesso no gateway pequeno. Para o gateway médio e grande, threshold_factor mostra a parte da memória total do servidor disponível para essa porta. Ele é usado como um divisor ao calcular o limite de uso de memória para a porta.
threshold bigint Memória de limite seguinte em bytes. A consulta será necessária para obter um acesso a esse gateway se o consumo de memória atingir esse limite. "-1" se a consulta não for necessária para obter acesso a esse gateway.
is_active bit Se a consulta é necessária para passar a porta atual ou não.

Permissões

SQL Server requer a permissão VIEW SERVER STATE no servidor.

Banco de Dados SQL do Azure requer a permissão VIEW DATABASE STATE no banco de dados.

Comentários

SQL Server usa uma abordagem de gateway em camadas para acelerar o número de compilações simultâneas permitidas. Três gateways são usados, incluindo pequeno, médio e grande. Os gateways ajudam a evitar o esgotamento de recursos gerais de memória por consumidores que exigem memória de compilação maior.

Esperas em um resultado de gateway na compilação atrasada. Além dos atrasos na compilação, as solicitações aceleradas terão um acúmulo RESOURCE_SEMAPHORE_QUERY_COMPILE tipo de espera associado. O RESOURCE_SEMAPHORE_QUERY_COMPILE de espera pode indicar que as consultas estão usando uma grande quantidade de memória para compilação e que a memória foi esgotada ou, como alternativa, há memória suficiente disponível em geral, no entanto, as unidades disponíveis em um gateway específico foram esgotadas. A saída de sys.dm_exec_query_optimizer_memory_gateways pode ser usada para solucionar problemas de cenários em que não havia memória suficiente para compilar um plano de execução de consulta.

Exemplos

a. Exibindo estatísticas em semáforos de recurso

Quais são as estatísticas atuais do gateway de memória do otimizador para esta instância do 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 Também

Exibições e funções de gerenciamento dinâmico (Transact-SQL)
Funções e exibições de gerenciamento dinâmico relacionadas à execução (Transact-SQL)
Como usar o comando DBCC MEMORYSTATUS para monitorar o uso de memória SQL Server 2005 Esperas de compilação de consulta grande RESOURCE_SEMAPHORE_QUERY_COMPILE no SQL Server 2014