sys.dm_exec_query_optimizer_memory_gateways (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed Instance
Gibt den aktuellen Status von Ressourcensemaphoren zurück, die zum Reduzieren der gleichzeitigen Abfrageoptimierung verwendet werden.
Spalte | Type | Beschreibung |
---|---|---|
pool_id |
int | Ressourcenpool-ID unter Ressourcengouverneur |
name |
sysname | Name des Kompilierungsgateways (Kleiner Gateway, mittleres Gateway, Großes Gateway) |
max_count |
int | Die maximale konfigurierte Anzahl gleichzeitiger Kompilierungen |
active_count |
int | Die derzeit aktive Anzahl der Kompilierungen in diesem Gate |
waiter_count |
int | Die Anzahl der Kellner in diesem Gate |
threshold_factor |
bigint | Schwellenwertfaktor, der den maximalen Speicheranteil definiert, der von der Abfrageoptimierung verwendet wird. Für das kleine Gateway gibt threshold_factor die maximale Speicherauslastung des Optimierrs in Byte für eine Abfrage an, bevor der Zugriff auf das kleine Gateway erforderlich ist. Für das mittlere und große Gateway zeigt threshold_factor den Teil des gesamt verfügbaren Serverspeichers für dieses Gate an. Es wird als Divisor verwendet, wenn der Speichernutzungsschwellenwert für das Gate berechnet wird. |
threshold |
bigint | Nächster Schwellenwertspeicher in Byte. Die Abfrage ist erforderlich, um Zugriff auf dieses Gateway zu erhalten, wenn der Speicherverbrauch diesen Schwellenwert erreicht.
-1 , wenn die Abfrage nicht erforderlich ist, um Zugriff auf dieses Gateway zu erhalten. |
is_active |
bit | Gibt an, ob die Abfrage zum Übergeben des aktuellen Gates erforderlich ist. |
Berechtigungen
SQL Server erfordert VIEW SERVER STATE-Berechtigung auf dem Server.
Azure SQL-Datenbank erfordert die BERECHTIGUNG "DATENBANKSTATUS ANZEIGEN" in der Datenbank.
Berechtigungen für SQL Server 2022 und höher
Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.
Hinweise
SQL Server verwendet einen mehrstufigen Gatewayansatz, um die Anzahl der zulässigen gleichzeitigen Kompilierungen zu verringern. Es werden drei Gateways verwendet, darunter kleine, mittlere und große Gateways. Gateways verhindern die Ausschöpfung der gesamten Speicherressourcen durch größere Kompilierungsspeicher, die Verbraucher erfordern.
Wartezeiten auf einem Gateway führen zu verzögerter Kompilierung. Neben Verzögerungen bei der Kompilierung verfügen reduzierte Anforderungen über eine zugeordnete RESOURCE_SEMAPHORE_QUERY_COMPILE Akkumulation des Wartetyps. Der RESOURCE_SEMAPHORE_QUERY_COMPILE Wartetyp kann darauf hinweisen, dass Abfragen eine große Menge An Arbeitsspeicher für die Kompilierung verwenden und dass der Arbeitsspeicher erschöpft ist. Alternativ gibt es möglicherweise genügend Arbeitsspeicher, aber verfügbare Einheiten in einem bestimmten Gateway sind erschöpft. Die Ausgabe von sys.dm_exec_query_optimizer_memory_gateways
kann verwendet werden, um Szenarien zu behandeln, in denen nicht genügend Arbeitsspeicher zum Kompilieren eines Abfrageausführungsplans vorhanden war.
Beispiele
A. Anzeigen von Statistiken zu Ressourcensemaphoren
Was sind die aktuellen Speichergatewaystatistiken für diese Instanz von 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;
Verwandte Inhalte
- dynamische Verwaltungsansichten des Systems
- Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung (Transact-SQL)
- Verwenden des BEFEHLS DBCC MEMORYSTATUS zum Überwachen der Speicherauslastung in SQL Server 2005-
- Große Abfragekompilierung wartet auf RESOURCE_SEMAPHORE_QUERY_COMPILE in SQL Server 2014-