sys.dm_exec_query_resource_semaphores (Transact-SQL)
Gibt Informationen zum aktuellen Status des Abfrageressourcensemaphors zurück. sys.dm_exec_query_resource_semaphores stellt allgemeine Statusinformationen zum Arbeitsspeicher für die Abfrageausführung bereit. Mithilfe dieser Informationen können Sie bestimmen, ob das System Zugriff auf ausreichenden Arbeitsspeicher hat. Diese Sicht stellt eine Ergänzung der Arbeitsspeicherinformationen aus sys.dm_os_memory_clerks dar und ermöglicht so ein vollständiges Bild des Arbeitsspeicherstatus auf dem Server. sys.dm_exec_query_resource_semaphores gibt eine Zeile für das normale Ressourcensemaphor und eine weitere Zeile für das Ressourcensemaphor für kleine Abfragen zurück.
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.
Hinweis
Diese ID ist in Versionen von SQL Server vor Version SQL Server 2008 eindeutig. Diese Änderung kann die Abfrageausführung bei der Problembehandlung beeinflussen. Weitere Informationen finden Sie im Abschnitt "Hinweise" weiter unten in diesem Thema.
|
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. Falls im System der Arbeitsspeicher knapp ist oder der erzwungene minimale Arbeitsspeicher häufig zugewiesen 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 physikalisch 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. |
Berechtigungen
Erfordert die VIEW SERVER 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 zur Problembehandlung, aber schließen Sie es nicht in Anwendungen ein, die zukünftige Versionen von SQL Server verwenden sollen.
Mit dem Ressourcenkontrollen-Feature kann ein Datenbankadministrator Serverressourcen auf Ressourcenpools verteilen, bis zu maximal 20 Pools. In SQL Server 2008 verhält sich jeder Pool wie eine kleine unabhängige Serverinstanz und erfordert 2 Semaphore. Die Anzahl der von sys.dm_exec_query_resource_semaphores zurückgegebenen Zeilen kann 20-mal so hoch sein wie in SQL Server 2005.