sys.dm_exec_procedure_stats (Transact-SQL)

Gibt die Aggregatleistungsstatistik für zwischengespeicherte gespeicherte Prozeduren zurück. Diese Sicht gibt eine Zeile für jeden zwischengespeicherten Plan der gespeicherten Prozedur zurück, und die Lebensdauer der Zeile entspricht der Verweildauer der gespeicherten Prozedur im Zwischenspeicher. Bei Entfernung einer gespeicherten Prozedur aus dem Cache wird die entsprechende Zeile aus dieser Sicht gelöscht. Zu diesem Zeitpunkt wird ein Leistungsstatistik-SQL-Ablaufverfolgungsereignis ausgelöst, das sys.dm_exec_query_stats entspricht.

HinweisHinweis

Die erste Abfrage von sys.dm_exec_procedure_stats kann zu ungenauen Ergebnissen führen, wenn eine hohe Arbeitsauslastung auf dem Server besteht. Erneutes Ausführen der Abfrage liefert unter Umständen genauere Ergebnisse.

Spaltenname

Datentyp

Beschreibung

database_id

int

ID der Datenbank, in der sich die angegebene gespeicherte Prozedur befindet.

object_id

int

Objekt-ID der gespeicherten Prozedur.

type

char(2)

Der Objekttyp:

P = Gespeicherte SQL-Prozedur

PC = Gespeicherte Assemblyprozedur (CLR)

X = Erweiterte gespeicherte Prozedur

type_desc

nvarchar(60)

Beschreibung des Objekttyps:

SQL_STORED_PROCEDURE

CLR_STORED_PROCEDURE

EXTENDED_STORED_PROCEDURE

sql_handle

varbinary(64)

Kann zur Korrelation mit Abfragen in sys.dm_exec_query_stats verwendet werden, die aus dieser gespeicherten Prozedur ausgeführt wurden.

plan_handle

varbinary(64)

Bezeichner für den speicherinternen Plan. Dieser Bezeichner ist vorübergehend und bleibt nur für die Dauer der Speicherung des Plans im Cache konstant. Dieser Wert kann mit der dynamischen Verwaltungssicht sys.dm_exec_cached_plans verwendet werden.

cached_time

datetime

Der Zeitpunkt, zu dem die gespeicherte Prozedur dem Cache hinzugefügt wurde.

cached_time

datetime

Der Zeitpunkt, zu dem die gespeicherte Prozedur dem Cache hinzugefügt wurde.

last_execution_time

datetime

Der Zeitpunkt, zu dem die gespeicherte Prozedur zuletzt ausgeführt wurde.

execution_count

bigint

Anzahl von Ausführungen der gespeicherten Prozedur seit der letzten Kompilierung.

total_worker_time

bigint

CPU-Gesamtzeit (in Mikrosekunden) für Ausführungen dieser gespeicherten Prozedur seit der Kompilierung.

last_worker_time

bigint

CPU-Zeit (in Mikrosekunden) für die letzte Ausführung der gespeicherten Prozedur.

min_worker_time

bigint

Bisherige minimale CPU-Zeit (in Mikrosekunden) für eine einzelne Ausführung dieser gespeicherten Prozedur.

max_worker_time

bigint

Bisherige maximale CPU-Zeit (in Mikrosekunden) für eine einzelne Ausführung dieser gespeicherten Prozedur.

total_physical_reads

bigint

Gesamtanzahl physischer Lesevorgänge für Ausführungen dieser gespeicherten Prozedur seit der Kompilierung.

last_physical_reads

bigint

Anzahl physischer Lesevorgänge bei der letzten Ausführung der gespeicherten Prozedur.

min_physical_reads

bigint

Bisherige minimale Anzahl physischer Lesevorgänge für eine einzelne Ausführung dieser gespeicherten Prozedur.

max_physical_reads

bigint

Bisherige maximale Anzahl physischer Lesevorgänge für eine einzelne Ausführung dieser gespeicherten Prozedur.

total_logical_writes

bigint

Gesamtanzahl logischer Schreibvorgänge für Ausführungen dieser gespeicherten Prozedur seit der Kompilierung.

last_logical_writes

bigint

Anzahl logischer Schreibvorgänge bei der letzten Ausführung der gespeicherten Prozedur.

min_logical_writes

bigint

Bisherige minimale Anzahl logischer Schreibvorgänge für eine einzelne Ausführung dieser gespeicherten Prozedur.

max_logical_writes

bigint

Bisherige maximale Anzahl logischer Schreibvorgänge für eine einzelne Ausführung dieser gespeicherten Prozedur.

total_logical_reads

bigint

Gesamtanzahl logischer Lesevorgänge für Ausführungen dieser gespeicherten Prozedur seit der Kompilierung.

last_logical_reads

bigint

Anzahl logischer Lesevorgänge bei der letzten Ausführung der gespeicherten Prozedur.

min_logical_reads

bigint

Bisherige minimale Anzahl logischer Lesevorgänge für eine einzelne Ausführung dieser gespeicherten Prozedur.

max_logical_reads

bigint

Bisherige maximale Anzahl logischer Lesevorgänge für eine einzelne Ausführung dieser gespeicherten Prozedur.

total_elapsed_time

bigint

Insgesamt verstrichene Zeit (in Mikrosekunden) für abgeschlossene Ausführungen dieser gespeicherten Prozedur.

last_elapsed_time

bigint

Verstrichene Zeit (in Mikrosekunden) für die letzte abgeschlossene Ausführung dieser gespeicherten Prozedur.

min_elapsed_time

bigint

Mindestens verstrichene Zeit (in Mikrosekunden) für eine beliebige abgeschlossene Ausführung dieser gespeicherten Prozedur.

max_elapsed_time

bigint

Maximal verstrichene Zeit (in Mikrosekunden) für eine beliebige abgeschlossene Ausführung dieser gespeicherten Prozedur.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.

Hinweise

Die Statistik in der Sicht wird aktualisiert, wenn die Ausführung einer gespeicherten Prozedur abgeschlossen ist.

Beispiele

Das folgende Beispiel gibt Informationen zu den zehn gespeicherten Prozeduren mit der höchsten durchschnittlichen verstrichenen Zeit zurück.

SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc name', 
d.cached_time, d.last_execution_time, d.total_elapsed_time, d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],
d.last_elapsed_time, d.execution_count
FROM sys.dm_exec_procedure_stats AS d
ORDER BY [total_worker_time] DESC;
GO