sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
Si applica a: SQL Server 2016 (13.x) e versioni successive Database SQL di AzureIstanza gestita di SQL di Azure
Restituisce lo stato corrente dei semafori delle risorse usati per ridurre l'ottimizzazione simultanea delle query.
Column | Type | Descrizione |
---|---|---|
pool_id |
int | ID pool di risorse in Resource Governor |
name |
sysname | Compilare il nome del gate (Gateway piccolo, Gateway medio, Big Gateway) |
max_count |
int | Numero massimo configurato di compilazioni simultanee |
active_count |
int | Numero attualmente attivo di compilazioni in questo gate |
waiter_count |
int | Numero di camerieri in questo cancello |
threshold_factor |
bigint | Fattore soglia che definisce la parte massima di memoria usata dall'ottimizzazione query. Per il gateway di piccole dimensioni, threshold_factor indica l'utilizzo massimo della memoria dell'utilità di ottimizzazione in byte per una query prima che sia necessario ottenere l'accesso nel gateway di piccole dimensioni. Per il gateway medio e grande, threshold_factor mostra la parte della memoria totale del server disponibile per questo gate. Viene usato come divisore per calcolare la soglia di utilizzo della memoria per il gate. |
threshold |
bigint | Memoria soglia successiva in byte. La query è necessaria per ottenere l'accesso a questo gateway se l'utilizzo della memoria raggiunge questa soglia.
-1 se la query non è necessaria per ottenere l'accesso a questo gateway. |
is_active |
bit | Indica se la query deve passare o meno il gate corrente. |
Autorizzazioni
SQL Server richiede l'autorizzazione VIEW SERVER STATE per il server.
database SQL di Azure richiede l'autorizzazione VIEW DATABASE STATE nel database.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.
Osservazioni:
SQL Server usa un approccio gateway a livelli per ridurre il numero di compilazioni simultanee consentite. Vengono usati tre gateway, tra cui piccole, medie e grandi. I gateway consentono di evitare l'esaurimento delle risorse di memoria complessive da parte di consumer che richiedono memoria di compilazione più grandi.
Le attese su un gateway comportano una compilazione ritardata. Oltre ai ritardi nella compilazione, le richieste ridotte avranno un accumulo RESOURCE_SEMAPHORE_QUERY_COMPILE tipo di attesa associato. Il tipo di attesa RESOURCE_SEMAPHORE_QUERY_COMPILE potrebbe indicare che le query usano una grande quantità di memoria per la compilazione e che la memoria è esaurita. In alternativa, potrebbe essere disponibile memoria sufficiente nel complesso, ma le unità disponibili in un gateway specifico sono esaurite. L'output di sys.dm_exec_query_optimizer_memory_gateways
può essere usato per risolvere gli scenari in cui memoria insufficiente per compilare un piano di esecuzione delle query.
Esempi
R. Visualizzare le statistiche sui semafori delle risorse
Quali sono le statistiche correnti del gateway di memoria di Optimizer per questa istanza di SQL Server?
SELECT [pool_id], [name], [max_count], [active_count],
[waiter_count], [threshold_factor], [threshold],
[is_active]
FROM sys.dm_exec_query_optimizer_memory_gateways;
Contenuto correlato
- le viste a gestione dinamica di sistema
- Funzioni e viste a gestione dinamica relative all'esecuzione (Transact-SQL)
- Come usare il comando DBCC MEMORYSTATUS per monitorare l'utilizzo della memoria in SQL Server 2005
- la compilazione di query di grandi dimensioni attende RESOURCE_SEMAPHORE_QUERY_COMPILE in SQL Server 2014