sys.dm_exec_trigger_stats (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Gibt die Aggregatleistungsstatistik für zwischengespeicherte Trigger zurück. Diese Sicht enthält eine Zeile pro Trigger, und die Lebensdauer der Zeile entspricht der Verweildauer des Triggers im Cache. Bei Entfernung eines Triggers 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_statsentspricht.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
database_id | int | ID der Datenbank, in der sich der Trigger befindet. In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines Pools für elastische Datenbanken eindeutig, aber nicht innerhalb eines logischen Servers. |
object_id | int | Objekt-ID des Triggers. |
type | char(2) | Der Objekttyp: TA = Assembly (CLR) Trigger TR = SQL-Trigger |
Type_desc | nvarchar(60) | Beschreibung des Objekttyps: CLR_TRIGGER SQL_TRIGGER |
sql_handle | varbinary(64) | Kann zur Korrelation mit Abfragen in sys.dm_exec_query_stats verwendet werden, die aus diesem Trigger 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 der Trigger dem Cache hinzugefügt wurde. |
last_execution_time | datetime | Der Zeitpunkt, zu dem der Trigger zuletzt ausgeführt wurde. |
execution_count | bigint | Die Häufigkeit, mit der der Trigger seit der letzten Kompilierung ausgeführt wurde. |
total_worker_time | bigint | Die Gesamtdauer der CPU-Zeit in Mikrosekunden, die von Ausführungen dieses Triggers verbraucht wurde, seit sie kompiliert wurde. |
last_worker_time | bigint | CPU-Zeit (in Mikrosekunden) für die letzte Ausführung des Triggers. |
min_worker_time | bigint | Die maximale CPU-Zeit in Mikrosekunden, die dieser Trigger während einer einzelnen Ausführung jemals verbraucht hat. |
max_worker_time | bigint | Die maximale CPU-Zeit in Mikrosekunden, die dieser Trigger während einer einzelnen Ausführung jemals verbraucht hat. |
total_physical_reads | bigint | Die Gesamtzahl der physischen Lesevorgänge, die von Ausführungen dieses Triggers seit der Kompilierung ausgeführt wurden. |
last_physical_reads | bigint | Die Anzahl der physischen Lesevorgänge, die beim letzten Ausführen des Triggers ausgeführt wurden. |
min_physical_reads | bigint | Die Mindestanzahl der physischen Lesevorgänge, die dieser Trigger während einer einzelnen Ausführung jemals ausgeführt hat. |
max_physical_reads | bigint | Die maximale Anzahl physischer Lesevorgänge, die dieser Trigger während einer einzelnen Ausführung jemals ausgeführt hat. |
total_logical_writes | bigint | Die Gesamtzahl der logischen Schreibvorgänge, die von Ausführungen dieses Triggers seit der Kompilierung ausgeführt wurden. |
last_logical_writes | bigint | Die Anzahl der logischen Schreibvorgänge, die beim letzten Ausführen des Triggers ausgeführt wurden. |
min_logical_writes | bigint | Die minimale Anzahl von logischen Schreibvorgängen, die dieser Trigger während einer einzelnen Ausführung jemals ausgeführt hat. |
max_logical_writes | bigint | Die maximale Anzahl logischer Schreibvorgänge, die dieser Trigger während einer einzelnen Ausführung jemals ausgeführt hat. |
total_logical_reads | bigint | Die Gesamtzahl der logischen Lesevorgänge, die von Ausführungen dieses Triggers seit der Kompilierung ausgeführt wurden. |
last_logical_reads | bigint | Die Anzahl der logischen Lesevorgänge, die beim letzten Ausführen des Triggers ausgeführt wurden. |
min_logical_reads | bigint | Die Mindestanzahl der logischen Lesevorgänge, die dieser Trigger während einer einzelnen Ausführung jemals ausgeführt hat. |
max_logical_reads | bigint | Die maximale Anzahl logischer Lesevorgänge, die dieser Trigger während einer einzelnen Ausführung jemals ausgeführt hat. |
total_elapsed_time | bigint | Die gesamt verstrichene Zeit in Mikrosekunden für abgeschlossene Ausführungen dieses Triggers. |
last_elapsed_time | bigint | Verstrichene Zeit (in Mikrosekunden) für die letzte abgeschlossene Ausführung dieses Triggers. |
min_elapsed_time | bigint | Die minimale verstrichene Zeit in Mikrosekunden für jede abgeschlossene Ausführung dieses Triggers. |
max_elapsed_time | bigint | Die maximale verstrichene Zeit in Mikrosekunden für jede abgeschlossene Ausführung dieses Triggers. |
total_spills | bigint | Die Gesamtzahl der Seiten, die von der Ausführung dieses Triggers übergelaufen sind, seit sie kompiliert wurde. Gilt für: Ab SQL Server 2017 (14.x) CU3 |
last_spills | bigint | Die Anzahl der Seiten, die beim letzten Ausführen des Triggers übergelaufen sind. Gilt für: Ab SQL Server 2017 (14.x) CU3 |
min_spills | bigint | Die minimale Anzahl von Seiten, die dieser Auslöser während einer einzelnen Ausführung jemals übergelaufen hat. Gilt für: Ab SQL Server 2017 (14.x) CU3 |
max_spills | bigint | Die maximale Anzahl von Seiten, die dieser Trigger während einer einzelnen Ausführung jemals übergelaufen hat. Gilt für: Ab SQL Server 2017 (14.x) CU3 |
total_page_server_reads | bigint | Die Gesamtzahl der Seitenserverlesevorgänge, die von Ausführungen dieses Triggers seit der Kompilierung ausgeführt werden. Gilt für: Azure SQL-Datenbank Hyperscale |
last_page_server_reads | bigint | Die Anzahl der Seitenserverlesungen, die beim letzten Ausführen des Triggers ausgeführt wurden. Gilt für: Azure SQL-Datenbank Hyperscale |
min_page_server_reads | bigint | Die mindeste Anzahl von Seitenservern liest, dass dieser Trigger während einer einzelnen Ausführung jemals ausgeführt wurde. Gilt für: Azure SQL-Datenbank Hyperscale |
max_page_server_reads | bigint | Die maximale Anzahl von Seitenservern liest, dass dieser Trigger während einer einzelnen Ausführung jemals ausgeführt wurde. Gilt für: Azure SQL-Datenbank Hyperscale |
Hinweise
In SQL-Datenbank können dynamische Verwaltungsansichten keine Informationen verfügbar machen, die sich auf das Eindämmen von Datenbanken auswirken oder Informationen zu anderen Datenbanken verfügbar machen, auf die der Benutzer Zugriff hat. Um zu vermeiden, dass diese Informationen verfügbar gemacht werden, wird jede Zeile mit Daten, die zum verbundenen Mandanten gehören, herausgefiltert.
Statistiken in der Sicht werden nach Abschluss einer Abfrage aktualisiert.
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.
Beispiele
Das folgende Beispiel gibt Informationen zu den fünf Triggern mit der höchsten durchschnittlichen verstrichenen Zeit zurück.
SELECT TOP 5 d.object_id, d.database_id, DB_NAME(database_id) AS 'database_name',
OBJECT_NAME(object_id, database_id) AS 'trigger_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_trigger_stats AS d
ORDER BY [total_worker_time] DESC;
Weitere Informationen
Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_procedure_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)