Поделиться через


sys.dm_exec_trigger_stats (Transact-SQL)

Возвращает суммарную статистику производительности для кэшированных триггеров. Представление содержит одну строку для каждого триггера, а время существования строки равно времени пребывания триггера в кэше. Когда триггер удаляется из кэша, соответствующая строка исключается из представления. В этот момент возникает событие SQL-трассировки статистики производительности аналогично sys.dm_exec_query_stats.

Имя столбца

Тип данных

Описание

database_id

int

Идентификатор базы данных, в которой располагается триггер.

object_id

int

Идентификатор триггера.

тип

char(2)

Тип объекта:

TA = триггер сборки (среда CLR);

TR = триггер SQL

Type_desc

nvarchar(60)

Описание типа объекта:

CLR_TRIGGER

SQL_TRIGGER

sql_handle

varbinary(64)

Может использоваться для корреляции с запросами в представлении sys.dm_exec_query_stats, которые выполнялись из этого триггера.

plan_handle

varbinary(64)

Идентификатор плана в оперативной памяти. Этот идентификатор является временным и не меняется, пока план сохраняется в кэше. Это значение может быть использовано с динамическим административным представлением sys.dm_exec_cached_plans.

cached_time

datetime

Время, когда триггер был добавлен в кэш.

last_execution_time

datetime

Время последнего выполнения триггера.

execution_count

bigint

Количество выполнений триггера с момента последней компиляции.

total_worker_time

bigint

Общее время ЦП, затраченное на выполнение триггера с момента компиляции, в микросекундах.

last_worker_time

bigint

Время ЦП, затраченное на последнее выполнение триггера, в микросекундах.

min_worker_time

bigint

Максимальное время ЦП (в микросекундах), которое этот триггер когда-либо затрачивал за одно выполнение.

max_worker_time

bigint

Максимальное время ЦП (в микросекундах), которое этот триггер когда-либо затрачивал за одно выполнение.

total_physical_reads

bigint

Общее количество операций физического считывания при выполнении триггера с момента его компиляции.

last_physical_reads

bigint

Количество операций физического считывания за время последнего выполнения триггера.

min_physical_reads

bigint

Минимальное количество операций физического считывания за одно выполнение триггера.

max_physical_reads

bigint

Максимальное количество операций физического считывания за одно выполнение триггера.

total_logical_writes

bigint

Общее количество операций логической записи при выполнении триггера с момента его компиляции.

last_logical_writes

bigint

Количество операций логической записи за время последнего выполнения триггера.

min_logical_writes

bigint

Минимальное количество операций логической записи за одно выполнение триггера.

max_logical_writes

bigint

Максимальное количество операций логической записи за одно выполнение триггера.

total_logical_reads

bigint

Общее количество операций логического считывания при выполнении триггера с момента его компиляции.

last_logical_reads

bigint

Количество операций логического считывания за время последнего выполнения триггера.

min_logical_reads

bigint

Минимальное количество операций логического считывания за одно выполнение триггера.

max_logical_reads

bigint

Максимальное количество операций логического считывания за одно выполнение триггера.

total_elapsed_time

bigint

Общее время, затраченное на выполнение триггера, в микросекундах.

last_elapsed_time

bigint

Время, затраченное на последнее выполнение триггера, в микросекундах.

min_elapsed_time

bigint

Минимальное время, затраченное на одно выполнение триггера, в микросекундах.

max_elapsed_time

bigint

Максимальное время, затраченное на одно выполнение триггера, в микросекундах.

Разрешения

Требует разрешений VIEW SERVER STATE на сервере.

Замечания

Статистика в представлении обновляется после завершения выполнения запроса.

Примеры

В следующем примере возвращаются сведения о 10 триггерах, занимающих наибольшее время ЦП, отсортированные по среднему затраченному времени.

PRINT '--top 10 CPU consuming triggers '

SELECT TOP 10 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;

Журнал изменений

Обновления

Заменен пример с обновленным кодом.