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


sys.dm_exec_trigger_stats (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

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

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

В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере.
object_id int Идентификатор триггера.
type 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 Максимальное истекшее время в микросекундах для любого завершенного выполнения этого триггера.
total_spills bigint Общее количество страниц, разливаемых выполнением этого триггера, так как оно было скомпилировано.

Область применения: начиная с SQL Server 2017 (14.x) CU3
last_spills bigint Количество страниц, разливаемых при последнем выполнении триггера.

Область применения: начиная с SQL Server 2017 (14.x) CU3
min_spills bigint Минимальное количество страниц, которые этот триггер когда-либо разлился во время одного выполнения.

Область применения: начиная с SQL Server 2017 (14.x) CU3
max_spills bigint Максимальное количество страниц, которые этот триггер когда-либо разлился во время одного выполнения.

Область применения: начиная с SQL Server 2017 (14.x) CU3
total_page_server_reads bigint Общее количество операций чтения сервера страницы, выполняемого выполнением этого триггера с момента компиляции.

Область применения: уровень службы "Гипермасштабирование" в Базе данных SQL Azure
last_page_server_reads bigint Количество операций чтения сервера страницы при последнем выполнении триггера.

Область применения: уровень службы "Гипермасштабирование" в Базе данных SQL Azure
min_page_server_reads bigint Минимальное количество сервера страницы считывает, что этот триггер когда-либо выполнялся во время одного выполнения.

Область применения: уровень службы "Гипермасштабирование" в Базе данных SQL Azure
max_page_server_reads bigint Максимальное количество серверов страницы считывает, что этот триггер когда-либо выполнялся во время одного выполнения.

Область применения: уровень службы "Гипермасштабирование" в Базе данных SQL Azure

Замечания

В База данных SQL динамические административные представления не могут предоставлять сведения, влияющие на доступность базы данных или предоставление сведений о других базах данных, к которым имеет доступ пользователь. Чтобы избежать предоставления этой информации, отфильтровывается каждая строка, содержащая данные, которые не принадлежат подключену клиенту.

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

Разрешения

На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE.

Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader## роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.

Разрешения для SQL Server 2022 и более поздних версий

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

Примеры

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

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;  

См. также

Связанные с выполнением динамические административные представления и функции (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)