sys.dm_exec_query_resource_semaphores (Transact-SQL)

Vengono restituite le informazioni sullo stato del semaforo per le risorse query corrente. sys.dm_exec_query_resource_semaphores fornisce 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. Tramite sys.dm_exec_query_resource_semaphores vengono restituite 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.

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 64 pool di risorse. In SQL Server 2012, per ogni pool, il cui comportamento è simile a una piccola istanza indipendente del server, sono richiesti 2 semafori.

Vedere anche

Riferimento

Funzioni e viste a gestione dinamica relative all'esecuzione (Transact-SQL)

sys.dm_exec_query_memory_grants (Transact-SQL)