Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics 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)