sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores Banco de Dados SQL do AzureInstância Gerenciada de SQL do Azure
Retorna o status atual dos semáforos de recursos usados para limitar a otimização de consulta simultânea.
Coluna | Tipo | Descrição |
---|---|---|
pool_id | int | ID do pool de recursos em Resource Governor |
name | sysname | Compile o nome do portão (Gateway Pequeno, Gateway Médio, Big Gateway) |
max_count | int | A contagem máxima configurada de compilações simultâneas |
active_count | int | A contagem ativa atualmente de compilações neste portão |
waiter_count | int | O número de garçons 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 de ser necessário para 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 o portão. |
threshold | bigint | Próxima memória de limite 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 | bit | Se a consulta é necessária para passar o portão atual ou não. |
Permissões
SQL Server requer a permissão VIEW SERVER STATE no servidor.
SQL do Azure Banco de Dados requer a permissão VIEW DATABASE STATE no banco de dados.
Permissões para SQL Server 2022 e posteriores
Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Comentários
SQL Server usa uma abordagem de gateway em camadas para limitar 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 que exigem memória de compilação maior.
Esperas em um gateway resultam em compilação atrasada. Além dos atrasos na compilação, as solicitações limitadas terão um acúmulo de tipo de espera RESOURCE_SEMAPHORE_QUERY_COMPILE associado. 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 foi esgotada ou, como alternativa, há memória suficiente disponível no 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 recursos
Quais são as estatísticas atuais do gateway de memória do otimizador para essa 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 no SQL Server 2005Grandes esperas de compilação de consulta em RESOURCE_SEMAPHORE_QUERY_COMPILE no SQL Server 2014
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de