sys.dm_exec_query_resource_semaphores (Transact-SQL)
Restituisce informazioni sullo stato del semaforo per le risorse query corrente. sys.dm_exec_query_resource_semaphores specifica lo stato generale della memoria dell'esecuzione di query e consente di determinare se la quantità di memoria disponibile per il sistema è sufficiente. Insieme alle informazioni sulla memoria ottenute da sys.dm_os_memory_clerks, questa vista offre un quadro completo dello stato della memoria del server. sys.dm_exec_query_resource_semaphores restituisce una riga per il semaforo di risorsa normale e un'altra riga per il semaforo di risorsa per query di dimensioni ridotte.
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.
Nota
L'ID è univoco nelle versioni di SQL Server precedenti a SQL Server 2008. La modifica può influire sulla risoluzione dei problemi relativi all'esecuzione di query. Per ulteriori informazioni, vedere la sezione "Osservazioni" di seguito in questo argomento.
|
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. In caso di numero eccessivo di richieste di memoria o se viene concessa frequentemente una quantità minima di memoria, questo valore può essere maggiore del valore di target_memory_kb o di 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. |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE per il 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.
Utilizzare pertanto tale vista per la risoluzione dei problemi ma non includerla nelle applicazioni che utilizzeranno versioni future di SQL Server.
La funzionalità Resource Governor consente a un amministratore del database di distribuire risorse del server fra un massimo di 20 pool di risorse. In SQL Server 2008, ogni pool si comporta come una piccola istanza indipendente del server e richiede 2 semafori. Il numero di righe restituite da sys.dm_exec_query_resource_semaphores può essere fino a 20 volte superiore alle righe restituite in SQL Server 2005.