sys.dm_exec_query_resource_semaphores (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Gibt die Informationen zum aktuellen Semaphorstatus der Abfrageressource in SQL Server zurück. sys.dm_exec_query_resource_semaphores bietet allgemeinen Speicherstatus für die Abfrageausführung und ermöglicht Es Ihnen zu bestimmen, ob das System auf genügend Arbeitsspeicher zugreifen kann. Diese Ansicht ergänzt die von sys.dm_os_memory_clerks abgerufenen Speicherinformationen, um ein vollständiges Bild des Serverspeicherstatus bereitzustellen. sys.dm_exec_query_resource_semaphores gibt eine Zeile für den regulären Ressourcen-Semaphor und eine andere Zeile für das Semaphor der Kleinen Abfrageressource zurück. Es gibt zwei Anforderungen für ein Semaphor für kleine Abfragen:
Die angeforderte Speichererteilung sollte kleiner als 5 MB sein.
Die Abfragekosten sollten kleiner als 3 Kosteneinheiten sein.
Hinweis
Um dies von Azure Synapse Analytics oder Analytics Platform System (PDW) aufzurufen, verwenden Sie den Namen sys.dm_pdw_nodes_exec_query_resource_semaphores
. Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
resource_semaphore_id | smallint | Nicht eindeutige ID des Ressourcensemaphors. 0 für das normale Ressourcensemaphor und 1 für das Ressourcensemaphor für kleine Abfragen. |
target_memory_kb | bigint | Zuweisungsziel in Kilobytes. |
max_target_memory_kb | bigint | Maximal mögliches Ziel in Kilobytes. NULL für das Ressourcensemaphor für kleine Abfragen. |
total_memory_kb | bigint | Der vom Ressourcensemaphor belegte Arbeitsspeicher in Kilobytes. Wenn das System unter Arbeitsspeicherdruck liegt oder häufig erzwungener Minimalspeicher gewährt wird, kann dieser Wert größer als die werte target_memory_kb oder max_target_memory_kb sein. Der Gesamtarbeitsspeicher ist die Summe aus dem verfügbaren und dem zugewiesenen Arbeitsspeicher. |
available_memory_kb | bigint | Der für eine neue Zuweisung verfügbare Arbeitsspeicher in Kilobytes. |
granted_memory_kb | bigint | Der insgesamt zugewiesene Arbeitsspeicher in Kilobytes. |
used_memory_kb | bigint | Der physisch verwendete Teil des zugewiesenen Arbeitsspeichers in Kilobytes. |
grantee_count | int | Die Anzahl aktiver Abfragen, deren Zuweisungen erfüllt wurden. |
waiter_count | int | Die Anzahl von Abfragen, die auf die Erfüllung ihrer Zuweisungen warten. |
timeout_error_count | bigint | Die Gesamtanzahl von Timeoutfehlern seit dem Start des Servers. NULL für das Ressourcensemaphor für kleine Abfragen. |
forced_grant_count | bigint | Die Gesamtanzahl erzwungener Zuweisungen des minimalen Arbeitsspeichers seit dem Start des Servers. NULL für das Ressourcensemaphor für kleine Abfragen. |
pool_id | int | ID des Ressourcenpools, zu dem dieses Ressourcensemaphor gehört. |
pdw_node_id | int | Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW) Der Bezeichner für den Knoten, auf dem sich diese Verteilung befindet. |
Berechtigungen
Für SQL Server und SQL Managed Instance ist die VIEW SERVER STATE
-Berechtigung erforderlich.
Für die SQL-Datenbank-Ziele Basic, S0 und S1 sowie für Datenbanken in Pools für elastische Datenbanken ist das Konto des Serveradministrators oder des Microsoft Entra-Administratorkontos oder die Mitgliedschaft in der ##MS_ServerStateReader##
Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE STATE
-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader##
-Serverrolle erforderlich.
Berechtigungen für SQL Server 2022 und höher
Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.
Hinweise
Abfragen mithilfe dynamischer Verwaltungssichten, die ORDER BY oder Aggregate enthalten, können die Arbeitsspeichernutzung erhöhen und so zu dem Problem beitragen, das mit ihnen behandelt werden soll.
Verwenden Sie sys.dm_exec_query_resource_semaphores für die Problembehandlung, fügen Sie sie jedoch nicht in Anwendungen ein, die zukünftige Versionen von SQL Server verwenden.
Mit der Ressourcenkontrollen-Funktion kann ein Datenbankadministrator Serverressourcen auf Ressourcenpools verteilen, bis zu maximal 64 Pools. In SQL Server 2012 (11.x) und höher verhält sich jeder Pool wie eine kleine unabhängige Serverinstanz und erfordert 2 Semaphore.
Weitere Informationen
Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)