sys.dm_exec_query_stats

Aktualisiert: 12. Dezember 2006

Gibt die Aggregatleistungsstatistik für zwischengespeicherte Abfragepläne zurück. Diese Sicht enthält eine Zeile pro Abfrageanweisung innerhalb des zwischengespeicherten Planes, und die Lebensdauer der Zeilen ist an den Plan selbst gebunden. Wenn ein Plan aus dem Cache entfernt wird, werden die entsprechenden Zeilen aus dieser Sicht entfernt.

ms189741.note(de-de,SQL.90).gifHinweis:
Die erste Abfrage von sys.dm_exec_query_stats kann zu ungenauen Ergebnissen führen, wenn derzeit eine hohe Arbeitsauslastung auf dem Server besteht. Erneutes Ausführen der Abfrage liefert unter Umständen genauere Ergebnisse.
Spaltenname Datentyp Beschreibung

sql_handle

varbinary(64)

Ein Token, das auf den Batch oder die gespeicherte Prozedur verweist, von dem bzw. der die Abfrage Bestandteil ist.

sql_handle kann zusammen mit statement_start_offset und statement_end_offset verwendet werden, um den SQL-Text der Abfrage abzurufen, indem die dynamische Verwaltungsfunktion sys.dm_exec_sql_text aufgerufen wird.

statement_start_offset

int

Gibt (in Bytes) beginnend mit 0 die Startposition der Abfrage, die die Zeile beschreibt, innerhalb des Textes des Batches oder des permanenten Objekts an.

statement_end_offset

int

Gibt (in Bytes) beginnend mit 0 die Endposition der Abfrage, die die Zeile beschreibt, innerhalb des Textes des Batches oder des permanenten Objekts an. Der Wert -1 gibt das Ende des Batches an.

plan_generation_num

bigint

Eine Sequenznummer, anhand der nach einer Neukompilierung zwischen einzelnen Instanzen von Plänen unterschieden werden kann.

plan_handle

varbinary(64)

Ein Token, das auf den kompilierten Plan verweist, dessen Bestandteil die Abfrage ist. Dieser Wert kann an die dynamische Verwaltungsfunktion sys.dm_exec_query_plan übergeben werden, um den Abfrageplan abzurufen.

creation_time

datetime

Der Zeitpunkt, zu dem der Plan kompiliert wurde.

last_execution_time

datetime

Der Zeitpunkt, zu dem der Plan zuletzt ausgeführt wurde.

execution_count

bigint

Anzahl von Ausführungen des Planes seit der letzten Kompilierung.

total_worker_time

bigint

CPU-Gesamtzeit (in Mikrosekunden) für Ausführungen dieses Planes seit der Kompilierung.

last_worker_time

bigint

CPU-Zeit (in Mikrosekunden) für die letzte Ausführung des Planes.

min_worker_time

bigint

Bisherige minimale CPU-Zeit (in Mikrosekunden) für eine einzelne Ausführung dieses Planes.

max_worker_time

bigint

Bisherige maximale CPU-Zeit (in Mikrosekunden) für eine einzelne Ausführung dieses Planes.

total_physical_reads

bigint

Gesamtanzahl physikalischer Lesevorgänge für Ausführungen dieses Planes seit der Kompilierung.

last_physical_reads

bigint

Anzahl physikalischer Lesevorgänge bei der letzten Ausführung des Planes.

min_physical_reads

bigint

Bisherige minimale Anzahl physikalischer Lesevorgänge für eine einzelne Ausführung dieses Planes.

max_physical_reads

bigint

Bisherige maximale Anzahl physikalischer Lesevorgänge für eine einzelne Ausführung dieses Planes.

total_logical_writes

bigint

Gesamtanzahl logischer Schreibvorgänge für Ausführungen dieses Planes seit der Kompilierung.

last_logical_writes

bigint

Anzahl logischer Schreibvorgänge bei der letzten Ausführung des Planes.

min_logical_writes

bigint

Bisherige minimale Anzahl logischer Schreibvorgänge für eine einzelne Ausführung dieses Planes.

max_logical_writes

bigint

Bisherige maximale Anzahl logischer Schreibvorgänge für eine einzelne Ausführung dieses Planes.

total_logical_reads

bigint

Gesamtanzahl logischer Lesevorgänge für Ausführungen dieses Planes seit der Kompilierung.

last_logical_reads

bigint

Anzahl logischer Lesevorgänge bei der letzten Ausführung des Planes.

min_logical_reads

bigint

Bisherige minimale Anzahl logischer Lesevorgänge für eine einzelne Ausführung dieses Planes.

max_logical_reads

bigint

Bisherige maximale Anzahl logischer Lesevorgänge für eine einzelne Ausführung dieses Planes.

total_clr_time

bigint

Zeit (in Mikrosekunden) in Microsoft .NET Framework CLR-Objekten (Common Language Runtime) für Ausführungen dieses Planes seit der Kompilierung. Die CLR-Objekte können gespeicherte Prozeduren, Funktionen, Trigger, Typen und Aggregate sein.

last_clr_time

bigint

Zeit für die Ausführung in .NET Framework CLR-Objekten während der letzten Ausführung dieses Plans. Die CLR-Objekte können gespeicherte Prozeduren, Funktionen, Trigger, Typen und Aggregate sein.

min_clr_time

bigint

Bisherige minimale Zeit (in Mikrosekunden) für eine einzelne Ausführung dieses Planes in .NET Framework CLR-Objekten. Die CLR-Objekte können gespeicherte Prozeduren, Funktionen, Trigger, Typen und Aggregate sein.

max_clr_time

bigint

Bisherige maximale Zeit (in Mikrosekunden) für eine einzelne Ausführung dieses Planes in .NET Framework CLR. Die CLR-Objekte können gespeicherte Prozeduren, Funktionen, Trigger, Typen und Aggregate sein.

total_elapsed_time

bigint

Insgesamt verstrichene Zeit (in Mikrosekunden) für abgeschlossene Ausführungen dieses Planes.

last_elapsed_time

bigint

Verstrichene Zeit (in Mikrosekunden) für die letzte abgeschlossene Ausführung dieses Planes.

min_elapsed_time

bigint

Mindestens verstrichene Zeit (in Mikrosekunden) für eine beliebige abgeschlossene Ausführung dieses Planes.

max_elapsed_time

bigint

Maximal verstrichene Zeit (in Mikrosekunden) für eine beliebige abgeschlossene Ausführung dieses Planes.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.

Hinweise

Statistiken in der Sicht werden nach Abschluss einer Abfrage aktualisiert.

Beispiele

Das folgende Beispiel gibt Informationen zu den fünf Abfragen mit dem höchsten durchschnittlichen CLR-Zeitaufwand zurück.

SELECT TOP 5 creation_time, last_execution_time, total_clr_time,
    total_clr_time/execution_count AS [Avg CLR Time], last_clr_time,
    execution_count, 
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
    ((CASE statement_end_offset 
        WHEN -1 THEN DATALENGTH(st.text)
        ELSE qs.statement_end_offset END 
            - qs.statement_start_offset)/2) + 1) as statement_text
FROM sys.dm_exec_query_stats as qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as st
ORDER BY total_clr_time/execution_count DESC;
GO

Siehe auch

Verweis

Dynamische Verwaltungssichten und -funktionen
Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung
sys.dm_exec_sql_text
sys.dm_exec_query_plan

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Geänderter Inhalt:
  • Die Definitionen der Spalten sql_handle, plan_generation_num und plan_handle wurden berichtigt.

14. April 2006

Geänderter Inhalt:
  • Das Beispiel wurde korrigiert.

05. Dezember 2005

Neuer Inhalt:
  • Hinweis hinzugefügt, dass diese dynamische Verwaltungssicht bei aktueller Arbeitsauslastung auf dem Server mehrfach abgefragt werden muss, um genauere Ergebnisse zu erhalten.
  • Erläuterung hinzugefügt, dass die Spalten statement_end_offset und statement_start_offset nullbasiert sind und dass der Wert -1 in der statement_end_offset-Spalte das Ende des Batches angibt.