sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
Aplica-se a: SQL Server 2016 (13.x) e posterior Banco de Dados SQL do AzureInstância Gerenciada SQL do Azure
Retorna o status atual dos semáforos de recursos usados para reduzir a otimização de consultas simultâneas.
Coluna | Tipo | Descrição |
---|---|---|
pool_id |
int | ID do pool de recursos em Administrador de Recursos |
name |
sysname | Nome da porta de compilação (Small Gateway, Medium Gateway, Big Gateway) |
max_count |
int | A contagem máxima configurada de compilações simultâneas |
active_count |
int | A contagem atualmente ativa de compilações nesta porta |
waiter_count |
int | O número de garçons neste portão |
threshold_factor |
bigint | Fator limite que define a parte máxima de memória usada pela otimização de consulta. Para o gateway pequeno, threshold_fator indica o uso máximo de memória do otimizador em bytes para uma consulta antes que seja necessário obter acesso no gateway pequeno. Para o gateway médio e grande, threshold_fator mostra a parte da memória total do servidor disponível para esse portão. Ele é usado como um divisor ao calcular o limite de uso de memória para o portão. |
threshold |
bigint | Próximo limite de memória em bytes. A consulta é necessária para obter acesso a esse gateway se seu consumo de memória atingir esse limite.
-1 se a consulta não for necessária para obter acesso a esse gateway. |
is_active |
pouco | Se a consulta é necessária para passar o portão atual ou não. |
Permissões
O SQL Server requer a permissão VIEW SERVER STATE no servidor.
O Banco de Dados SQL do Azure requer a permissão VIEW DATABASE STATE no banco de dados.
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Comentários
O SQL Server usa uma abordagem de gateway hierárquico para reduzir 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 dos recursos gerais de memória por consumidores maiores que exigem memória de compilação.
As esperas em um gateway resultam em atraso na compilação. Além dos atrasos na compilação, as solicitações reduzidas terão um acúmulo associado do tipo RESOURCE_SEMAPHORE_QUERY_COMPILE espera. O tipo de espera RESOURCE_SEMAPHORE_QUERY_COMPILE pode indicar que as consultas estão usando uma grande quantidade de memória para compilação e que a memória está esgotada. Como alternativa, pode haver memória suficiente disponível em geral, mas as unidades disponíveis em um gateway específico estão esgotadas. A saída de sys.dm_exec_query_optimizer_memory_gateways
pode ser usada para solucionar problemas em cenários em que não havia memória suficiente para compilar um plano de execução de consulta.
Exemplos
Um. Ver estatísticas sobre semáforos de recursos
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;
Conteúdo relacionado
- Visualizações de gerenciamento dinâmico do sistema
- Visualizações e funções de gerenciamento dinâmico relacionadas à execução (Transact-SQL)
- Como usar o comando DBCC MEMORYSTATUS para monitorar o uso de memória no SQL Server 2005
- compilação de consulta grande aguarda RESOURCE_SEMAPHORE_QUERY_COMPILE no SQL Server 2014