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 Drosseln der gleichzeitigen Abfrageoptimierung verwendet werden.
Spalte | Typ | BESCHREIBUNG |
---|---|---|
pool_id | int | Ressourcenpool-ID unter Resource Governor |
name | sysname | Kompilieren des Gatenamens (Kleines Gateway, mittleres Gateway, Großes Gateway) |
max_count | int | Die maximale konfigurierte Anzahl gleichzeitiger Kompilierungen |
active_count | int | Die derzeit aktive Anzahl von Kompilierungen in diesem Gate |
waiter_count | int | Die Anzahl der Kellner in diesem Gate |
threshold_factor | bigint | Schwellenwertfaktor, der den maximalen Arbeitsspeicheranteil definiert, der von der Abfrageoptimierung verwendet wird. Für das kleine Gateway gibt threshold_factor die maximale Speicherauslastung des Optimierrs in Bytes 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 gesamten Serverspeichers an, der für dieses Gate verfügbar ist. Er wird als Divisor verwendet, wenn der Schwellenwert für die Speicherauslastung für das Gate berechnet wird. |
threshold | bigint | Nächster Schwellenwertspeicher in Bytes. Die Abfrage ist erforderlich, um Zugriff auf dieses Gateway zu erhalten, wenn der Arbeitsspeicherverbrauch 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 die VIEW SERVER STATE-Berechtigung auf dem Server.
Azure SQL Datenbank erfordert die VIEW DATABASE STATE-Berechtigung in der Datenbank.
Berechtigungen für SQL Server 2022 und höher
Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.
Bemerkungen
SQL Server verwendet einen mehrstufigen Gatewayansatz, um die Anzahl der zulässigen gleichzeitigen Kompilierungen zu drosseln. Es werden drei Gateways verwendet, darunter klein, mittel und groß. Gateways tragen dazu bei, die Auslastung der Gesamtspeicherressourcen zu verhindern, indem größere Benutzer den Kompilierungsspeicher benötigen.
Wartezeiten auf einem Gateway führen zu einer verzögerten Kompilierung. Zusätzlich zu Verzögerungen bei der Kompilierung haben gedrosselte Anforderungen eine zugeordnete RESOURCE_SEMAPHORE_QUERY_COMPILE Wartetypakkumulation. Der RESOURCE_SEMAPHORE_QUERY_COMPILE Wartetyps kann darauf hindeuten, dass Abfragen eine große Menge an Arbeitsspeicher für die Kompilierung verwenden und der Arbeitsspeicher erschöpft ist, oder alternativ ist insgesamt genügend Arbeitsspeicher verfügbar, obwohl die verfügbaren Einheiten in einem bestimmten Gateway erschöpft sind. Die Ausgabe von sys.dm_exec_query_optimizer_memory_gateways kann zur Problembehandlung in Szenarien verwendet werden, in denen nicht genügend Arbeitsspeicher zum Kompilieren eines Abfrageausführungsplans vorhanden war.
Beispiele
A. Anzeigen von Statistiken zu Ressourcensemaphoren
Wie lautet die aktuelle Speichergatewaystatistik des Optimierrs 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;
Weitere Informationen
Dynamische Verwaltungssichten und Funktionen (Transact-SQL)
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: Warten der Kompilierung großer Abfragen auf RESOURCE_SEMAPHORE_QUERY_COMPILE in SQL Server 2014
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für