Partilhar via


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)