sys.dm_exec_trigger_stats (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure 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_stats entspricht.

Spaltenname Datentyp BESCHREIBUNG
database_id int ID der Datenbank, in der sich der Trigger befindet.

In Azure SQL-Datenbank sind die Werte innerhalb einer Einzeldatenbank 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 Gibt an, wie oft der Trigger seit seiner letzten Kompilierung ausgeführt wurde.
total_worker_time bigint Die Gesamtanzahl der CPU-Zeit in Mikrosekunden, die von Ausführungen dieses Triggers seit der Kompilierung verbraucht 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 jemals während einer einzelnen Ausführung verbraucht hat.
max_worker_time bigint Die maximale CPU-Zeit in Mikrosekunden, die dieser Trigger jemals während einer einzelnen Ausführung 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 bei der letzten Ausführung des Triggers ausgeführt wurden.
min_physical_reads bigint Die Mindestanzahl physischer Lesevorgänge, die dieser Trigger jemals während einer einzelnen Ausführung ausgeführt hat.
max_physical_reads bigint Die maximale Anzahl physischer Lesevorgänge, die dieser Trigger jemals während einer einzelnen Ausführung 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 bei der letzten Ausführung des Triggers ausgeführt wurden.
min_logical_writes bigint Die Mindestanzahl logischer Schreibvorgänge, die dieser Trigger jemals während einer einzelnen Ausführung ausgeführt hat.
max_logical_writes bigint Die maximale Anzahl logischer Schreibvorgänge, die dieser Trigger jemals während einer einzelnen Ausführung 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 bei der letzten Ausführung des Triggers ausgeführt wurden.
min_logical_reads bigint Die Mindestanzahl logischer Lesevorgänge, die dieser Trigger jemals während einer einzelnen Ausführung ausgeführt hat.
max_logical_reads bigint Die maximale Anzahl logischer Lesevorgänge, die dieser Trigger jemals während einer einzelnen Ausführung 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 mindest verstrichene Zeit in Mikrosekunden für jede abgeschlossene Ausführung dieses Triggers.
max_elapsed_time bigint Die maximal verstrichene Zeit in Mikrosekunden für jede abgeschlossene Ausführung dieses Triggers.
total_spills bigint Die Gesamtanzahl der Seiten, die bei der Ausführung dieses Triggers seit der Kompilierung übergelaufen wurden.

Gilt für: Ab SQL Server 2017 (14.x) CU3
last_spills bigint Die Anzahl der Seiten, die bei der letzten Ausführung des Triggers übergelaufen sind.

Gilt für: Ab SQL Server 2017 (14.x) CU3
min_spills bigint Die Mindestanzahl von Seiten, die dieser Trigger jemals während einer einzelnen Ausführung übergelaufen hat.

Gilt für: Ab SQL Server 2017 (14.x) CU3
max_spills bigint Die maximale Anzahl von Seiten, die dieser Trigger jemals während einer einzelnen Ausführung überschüttet hat.

Gilt für: Ab SQL Server 2017 (14.x) CU3
total_page_server_reads bigint Die Gesamtanzahl der Seitenserverlesevorgänge, die von Ausführungen dieses Triggers seit der Kompilierung ausgeführt wurden.

Gilt für: Azure SQL-Datenbank Hyperscale
last_page_server_reads bigint Die Anzahl der Seitenserverlesungen, die bei der letzten Ausführung des Triggers ausgeführt wurden.

Gilt für: Azure SQL-Datenbank Hyperscale
min_page_server_reads bigint Die mindeste Anzahl von Seitenserverlesungen, die dieser Trigger jemals während einer einzelnen Ausführung ausgeführt hat.

Gilt für: Azure SQL-Datenbank Hyperscale
max_page_server_reads bigint Die maximale Anzahl von Seitenserverlesungen, die dieser Trigger jemals während einer einzelnen Ausführung ausgeführt hat.

Gilt für: Azure SQL-Datenbank Hyperscale

Hinweise

In SQL-Datenbank können dynamische Verwaltungssichten keine Informationen verfügbar machen, die sich auf die Datenbankeinschluss auswirken, oder Informationen zu anderen Datenbanken verfügbar machen, auf die der Benutzer Zugriff hat. Um die Offenlegung dieser Informationen zu vermeiden, wird jede Zeile, die Daten enthält, die nicht 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 Standard-, S0- und S1-Dienstziele von SQL-Datenbank sowie für Datenbanken in Pools für elastische Datenbanken ist das Konto des Serveradministrators, des Azure Active Directory-Administrators 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)