sys.dm_exec_query_resource_semaphores (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics
Retorna as informações sobre o status atual do semáforo do recurso de consulta no SQL Server. sys.dm_exec_query_resource_semaphores fornece o status geral da memória de execução de consulta e permite determinar se o sistema pode acessar memória suficiente. Essa exibição complementa as informações de memória obtidas do sys.dm_os_memory_clerks para fornecer uma imagem completa do status da memória do servidor. sys.dm_exec_query_resource_semaphores retorna uma linha para o semáforo de recurso regular e outra linha para o semáforo de recurso de consulta pequena. Há dois requisitos para um semáforo de consulta pequena:
A concessão de memória solicitada deve ser inferior a 5 MB
O custo da consulta deve ser inferior a 3 unidades de custo
Observação
Para chamar isso do Azure Synapse Analytics ou do PDW (Analytics Platform System), use o nome sys.dm_pdw_nodes_exec_query_resource_semaphores
. Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
resource_semaphore_id | smallint | ID não exclusivo do sinal do recurso. 0 para o sinal do recurso normal e 1 para o sinal do recurso da consulta pequena. |
target_memory_kb | bigint | Conceda o destino de uso em quilobytes. |
max_target_memory_kb | bigint | Destino potencial máximo em quilobytes. NULL para o sinal do recurso da consulta pequena. |
total_memory_kb | bigint | Memória usada pelo sinal do recurso em quilobytes. Se o sistema estiver sob pressão de memória ou se a memória mínima forçada for concedida com frequência, esse valor poderá ser maior que os valores target_memory_kb ou max_target_memory_kb . A memória total é uma soma das memórias disponível e concedida. |
available_memory_kb | bigint | Memória disponível para uma concessão nova em quilobytes. |
granted_memory_kb | bigint | Total de memória concedida em quilobytes. |
used_memory_kb | bigint | Parte fisicamente usada da memória concedida em quilobytes. |
grantee_count | int | Número de consultas ativas com concessões atendidas. |
waiter_count | int | Número de consultas que esperam as concessões serem atendidas. |
timeout_error_count | bigint | Número total de erros de tempo-limite desde a inicialização do servidor. NULL para o sinal do recurso da consulta pequena. |
forced_grant_count | bigint | Número total de concessões de memória mínimas forçadas desde a inicialização do servidor. NULL para o sinal do recurso da consulta pequena. |
pool_id | int | ID do pool de recursos ao qual pertence este sinal do recurso. |
pdw_node_id | int | Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW) O identificador do nó em que essa distribuição está ativada. |
Permissões
No SQL Server e na Instância Gerenciada de SQL, requer a permissão VIEW SERVER STATE
.
Nos objetivos de serviço Básico, S0 e S1 do Banco de Dados SQL e para bancos de dados em pools elásticos, a conta de administrador do servidor, a conta de administrador do Microsoft Entra ou a ##MS_ServerStateReader##
associação na função de servidor são necessárias. Em todos os outros objetivos de serviço do Banco de Dados SQL, a permissão VIEW DATABASE STATE
no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##
são necessárias.
Permissões do SQL Server 2022 e posteriores
É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Comentários
As consultas que usam exibições de gerenciamento dinâmico com ORDER BY ou agregações podem aumentar o uso da memória e, dessa forma, contribuir para o problema que estão solucionando.
Use sys.dm_exec_query_resource_semaphores para solução de problemas, mas não o inclua em aplicativos que usarão versões futuras do SQL Server.
O recurso Administrador de Recursos permite que um administrador de banco de dados distribua recursos de servidor entre pools de recursos, até um máximo de 64 pools. No SQL Server 2012 (11.x) e superior, cada pool se comporta como uma pequena instância de servidor independente e requer 2 semáforos.
Confira também
Funções e exibições de gerenciamento dinâmico relacionadas à execução (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)