Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Sistema di Piattaforma Analitica (PDW)
Database SQL in Microsoft Fabric
Restituisce le informazioni sullo stato del semaforo query-resource corrente in SQL Server. sys.dm_exec_query_resource_semaphores fornisce lo stato generale della memoria di esecuzione delle query e consente di determinare se il sistema può accedere a memoria sufficiente. Questa vista integra le informazioni sulla memoria ottenute da sys.dm_os_memory_clerks per fornire un quadro completo dello stato della memoria del server. sys.dm_exec_query_resource_semaphores restituisce una riga per il semaforo normale della risorsa e un'altra per il semaforo della risorsa di query di piccole dimensioni. Esistono due requisiti per un semaforo di query di piccole dimensioni:
La concessione di memoria richiesta deve essere inferiore a 5 MB
Il costo della query deve essere inferiore a 3 unità di costo
Nota
Per chiamare questa operazione da Azure Synapse Analytics o da Platform System (PDW), usare il nome sys.dm_pdw_nodes_exec_query_resource_semaphores. Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
| Nome colonna | Tipo di dati | Descrizione |
|---|---|---|
| resource_semaphore_id | smallint | ID non univoco del semaforo di risorsa. È uguale a 0 per il semaforo di risorsa normale e a 1 per il semaforo di risorsa per query di dimensioni ridotte. |
| target_memory_kb | bigint | Destinazione di utilizzo della concessione di memoria, espressa in kilobyte. |
| max_target_memory_kb | bigint | Destinazione potenziale massima, espressa in kilobyte. È NULL per il semaforo di risorsa per query di dimensioni ridotte. |
| total_memory_kb | bigint | Memoria utilizzata dal semaforo di risorsa, espressa in kilobyte. Se il sistema è sotto pressione sulla memoria o se viene concessa spesso memoria minima forzata, questo valore può essere maggiore dei valori target_memory_kb o max_target_memory_kb . La memoria totale è la somma della memoria disponibile e della memoria concessa. |
| available_memory_kb | bigint | Memoria disponibile per una nuova concessione, espressa in kilobyte. |
| granted_memory_kb | bigint | Memoria totale concessa, espressa in kilobyte. |
| used_memory_kb | bigint | Parte fisica della memoria concessa, espressa in kilobyte. |
| grantee_count | int | Numero di query attive a cui è stata concessa la memoria richiesta. |
| waiter_count | int | Numero di query in attesa che venga concessa la memoria richiesta. |
| timeout_error_count | bigint | Numero complessivo di errori di timeout dall'avvio del server. È NULL per il semaforo di risorsa per query di dimensioni ridotte. |
| forced_grant_count | bigint | Numero complessivo di concessioni di memoria minima dall'avvio del server. È NULL per il semaforo di risorsa per query di dimensioni ridotte. |
| pool_id | int | ID del pool di risorse a cui appartiene il semaforo di risorsa. |
| pdw_node_id | int |
Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW) Identificatore del nodo in cui è attiva la distribuzione. |
Autorizzazioni
In SQL Server e Istanza gestita di SQL è richiesta l'autorizzazione VIEW SERVER STATE.
Negli obiettivi del servizio Basic del Database SQL, S0 e S1 e per i database nei pool elastici, è richiesto l'account amministratore del server, l'account amministratore di Microsoft Entra o l’adesione nel ##MS_ServerStateReader## al ruolo del server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE per il database o l'adesione ruolo del server ##MS_ServerStateReader##.
Autorizzazioni per SQL Server 2022 e versioni successive
Richiede VIEW il permesso SERVER PERFORMANCE STATE sul server.
Osservazioni:
Le query che utilizzano viste a gestione dinamica che includono clausole ORDER BY o funzioni di aggregazione potrebbero aumentare l'utilizzo della memoria, contribuendo di conseguenza a causare il problema che dovrebbero risolvere.
Usare sys.dm_exec_query_resource_semaphores per la risoluzione dei problemi, ma non includerlo nelle applicazioni che useranno versioni future di SQL Server.
La funzionalità Resource Governor consente a un amministratore di database di distribuire risorse del server fra un massimo di 64 pool di risorse. In SQL Server 2012 (11.x) e versioni successive, ogni pool si comporta come un'istanza di server indipendente di piccole dimensioni e richiede 2 semafori.
Vedi anche
Funzioni e viste a gestione dinamica relative all'esecuzione (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)