sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
Si applica a: SQL Server 2016 (13.x) e versioni successive Database SQL di Azure Istanza gestita di SQL di Azure
Restituisce lo stato corrente dei semafori delle risorse utilizzati per limitare 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 un 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 limitare 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 limitate avranno un accumulo di RESOURCE_SEMAPHORE_QUERY_COMPILE tipo di attesa associato. Il tipo di attesa RESOURCE_SEMAPHORE_QUERY_COMPILE può indicare che le query usano una grande quantità di memoria per la compilazione e che la memoria è stata esaurita oppure in alternativa è disponibile memoria sufficiente nel complesso, ma le unità disponibili in un gateway specifico sono state 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. Visualizzazione delle 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;
Vedi anche
Funzioni a gestione dinamica e DMV (Transact-SQL)
Funzioni e viste a gestione dinamica relative all'esecuzione (Transact-SQL)
Come usare il comando DBCC MEMORYSTATUS per monitorare l'utilizzo della memoria nelle attese di compilazione di query di grandi dimensioni di SQL Server 2005in RESOURCE_SEMAPHORE_QUERY_COMPILE in SQL Server 2014