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 Cache. 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.
Hinweis |
---|
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. |
Typ |
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;