Partilhar via


sys.dm_exec_query_resource_semaphores (Transact-SQL)

Aplica-se a:Banco de Dados SQL doAzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Banco de Dados SQL no Microsoft Fabric

Devolve a informação sobre o estado atual do semáforo de recurso de consulta no SQL Server. sys.dm_exec_query_resource_semaphores fornece o estado geral da memória de execução da consulta e permite determinar se o sistema consegue aceder a memória suficiente. Esta visão complementa a informação de memória obtida de sys.dm_os_memory_clerks para fornecer uma imagem completa do estado da memória do servidor. sys.dm_exec_query_resource_semaphores devolve uma linha para o semáforo de recurso regular e outra linha para o semáforo de recurso de pequena consulta. Existem dois requisitos para um semáforo de pequena consulta:

  • 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 Analytics Platform System (PDW), use o nome sys.dm_pdw_nodes_exec_query_resource_semaphores. Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Nome da coluna Tipo de dados Description
resource_semaphore_id smallint ID não único do semáforo de recursos. 0 para o semáforo de recurso regular e 1 para o semáforo de recurso de pequena consulta.
target_memory_kb bigint Conceda o objetivo de utilização em kilobytes.
max_target_memory_kb bigint Alvo máximo potencial em kilobytes. NULL para o semáforo de recurso de pequena consulta.
total_memory_kb bigint Memória mantida pelo semáforo de recurso em kilobytes. Se o sistema estiver sob pressão de memória ou se for concedida memória mínima forçada frequentemente, este valor pode ser maior do que os valores target_memory_kb ou max_target_memory_kb . A memória total é a soma da memória disponível e concedida.
available_memory_kb bigint Memória disponível para um novo subsídio em kilobytes.
granted_memory_kb bigint Memória total concedida em kilobytes.
used_memory_kb bigint Usou fisicamente parte da memória concedida em kilobytes.
grantee_count int Número de consultas ativas cujas bolsas são satisfeitas.
waiter_count int Número de consultas à espera de que as bolsas sejam resolvidas.
timeout_error_count bigint Número total de erros de time-out desde o arranque do servidor. NULL para o semáforo de recurso de pequena consulta.
forced_grant_count bigint Número total de concessões forçadas de memória mínima desde o arranque do servidor. NULL para o semáforo de recurso de pequena consulta.
pool_id int ID do conjunto de recursos a que este semáforo de recursos pertence.
pdw_node_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O identificador do nó em que esta distribuição se encontra.

Permissions

No SQL Server e na Instância Gerenciada do SQL, requer VIEW SERVER STATE permissão.

No Banco de Dados SQL Basic, S0e S1 objetivos de serviço e para bancos de dados em pools elásticos , a conta de de administrador do servidor, a conta de de administrador do Microsoft Entra ou a associação aode função de servidor ##MS_ServerStateReader## é necessária. Em todos os outros objetivos de serviço do Banco de dados SQL, é necessária a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##.

Permissões para SQL Server 2022 e posterior

Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Observações

Consultas que utilizam vistas de gestão dinâmica que incluem ORDER BY ou agregados podem aumentar o consumo de memória e, assim, contribuir para o problema que estão a diagnosticar.

Use sys.dm_exec_query_resource_semaphores para resolução de problemas, mas não o inclua em aplicações que utilizem versões futuras do SQL Server.

A funcionalidade Resource Governor permite a um administrador de base de dados distribuir recursos do servidor entre pools de recursos, até um máximo de 64 pools. No SQL Server 2012 (11.x) e superiores, cada pool comporta-se como uma pequena instância independente de servidor e requer 2 semáforos.

Ver também

Visualizações e funções de gerenciamento dinâmico relacionadas à execução (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)