Compartilhar via


sys.dm_exec_trigger_stats (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Retorna estatísticas de desempenho de agregação dos gatilhos em cache. A exibição contém uma linha por gatilho e o tempo de vida da linha equivale ao tempo de permanência do gatilho em cache. Quando um gatilho é removido do cache, a linha correspondente é eliminada desta exibição. Nesse momento, é gerado um evento de rastreamento SQL de estatísticas de desempenho semelhante a sys.dm_exec_query_stats.

Nome da coluna Tipo de dados Descrição
database_id int ID do banco de dados no qual o gatilho reside.

No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou em um pool elástico, mas não em um servidor lógico.
object_id int Número de identificação de objeto do gatilho.
tipo char(2) Tipo do objeto:

TA = Gatilho (CLR) de assembly

TR = Gatilho SQL
Type_desc nvarchar(60) Descrição do tipo de objeto:

CLR_TRIGGER

SQL_TRIGGER
sql_handle varbinary(64) Isso pode ser usado para correlacionar com consultas em sys.dm_exec_query_stats que foram executadas de dentro desse gatilho.
plan_handle varbinary(64) Identificador do plano na memória. Esse identificador é transitório e permanece constante somente enquanto o plano permanece no cache. Esse valor pode ser usado com a exibição de gerenciamento dinâmico sys.dm_exec_cached_plans.
cached_time datetime Hora em que o gatilho foi adicionado ao cache.
last_execution_time datetime Hora da última execução do gatilho.
execution_count bigint O número de vezes que o gatilho foi executado desde a última compilação.
total_worker_time bigint A quantidade total de tempo de CPU, em microssegundos, que foi consumida pelas execuções desse gatilho desde que ele foi compilado.
last_worker_time bigint Tempo de CPU, em microssegundos, consumido na última vez em que o gatilho foi executado.
min_worker_time bigint O tempo máximo de CPU, em microssegundos, que esse gatilho já consumiu durante uma única execução.
max_worker_time bigint O tempo máximo de CPU, em microssegundos, que esse gatilho já consumiu durante uma única execução.
total_physical_reads bigint O número total de leituras físicas executadas por execuções desse gatilho desde que ele foi compilado.
last_physical_reads bigint O número de leituras físicas executadas na última vez que o gatilho foi executado.
min_physical_reads bigint O número mínimo de leituras físicas que esse gatilho já executou durante uma única execução.
max_physical_reads bigint O número máximo de leituras físicas que esse gatilho já executou durante uma única execução.
total_logical_writes bigint O número total de gravações lógicas executadas por execuções desse gatilho desde que ele foi compilado.
last_logical_writes bigint O número de gravações lógicas executadas na última vez que o gatilho foi executado.
min_logical_writes bigint O número mínimo de gravações lógicas que esse gatilho já executou durante uma única execução.
max_logical_writes bigint O número máximo de gravações lógicas que esse gatilho já executou durante uma única execução.
total_logical_reads bigint O número total de leituras lógicas executadas por execuções desse gatilho desde que ele foi compilado.
last_logical_reads bigint O número de leituras lógicas executadas na última vez que o gatilho foi executado.
min_logical_reads bigint O número mínimo de leituras lógicas que esse gatilho já executou durante uma única execução.
max_logical_reads bigint O número máximo de leituras lógicas que esse gatilho já executou durante uma única execução.
total_elapsed_time bigint O tempo total decorrido, em microssegundos, para execuções concluídas desse gatilho.
last_elapsed_time bigint Tempo decorrido, em microssegundos, da execução concluída mais recente deste gatilho.
min_elapsed_time bigint O tempo mínimo decorrido, em microssegundos, para qualquer execução concluída desse gatilho.
max_elapsed_time bigint O tempo máximo decorrido, em microssegundos, para qualquer execução concluída desse gatilho.
total_spills bigint O número total de páginas derramadas pela execução desse gatilho desde que ele foi compilado.

Aplica-se a: A partir do SQL Server 2017 (14.x) CU3
last_spills bigint O número de páginas derramadas na última vez que o gatilho foi executado.

Aplica-se a: A partir do SQL Server 2017 (14.x) CU3
min_spills bigint O número mínimo de páginas que esse gatilho já derramou durante uma única execução.

Aplica-se a: A partir do SQL Server 2017 (14.x) CU3
max_spills bigint O número máximo de páginas que esse gatilho já derramou durante uma única execução.

Aplica-se a: A partir do SQL Server 2017 (14.x) CU3
total_page_server_reads bigint O número total de leituras do servidor de página executadas por execuções desse gatilho desde que ele foi compilado.

Aplica-se a: Hiperescala do Banco de Dados SQL do Azure
last_page_server_reads bigint O número de leituras do servidor de páginas executadas na última vez que o gatilho foi executado.

Aplica-se a: Hiperescala do Banco de Dados SQL do Azure
min_page_server_reads bigint O número mínimo de leituras do servidor de página que esse gatilho já executou durante uma única execução.

Aplica-se a: Hiperescala do Banco de Dados SQL do Azure
max_page_server_reads bigint O número máximo de leituras do servidor de página que esse gatilho já executou durante uma única execução.

Aplica-se a: Hiperescala do Banco de Dados SQL do Azure

Comentários

No Banco de Dados SQL, as exibições de gerenciamento dinâmico não podem expor informações que afetariam a contenção do banco de dados ou expor informações sobre outros bancos de dados aos quais o usuário tem acesso. Para evitar a exposição dessas informações, todas as linhas que contêm dados que não pertencem ao locatário conectado são filtradas.

As estatísticas na exibição são atualizadas quando uma consulta é concluída.

Permissões

No SQL Server e na Instância Gerenciada de SQL, requer a permissão VIEW SERVER STATE.

Nos objetivos de serviço do Banco de Dados SQL Básico, S0 e S1 e para bancos de dados em pools elásticos, é necessário ter a conta do administrador do servidor, a conta do administrador do Microsoft Entra ou a associação à ##MS_ServerStateReader## função de servidor. Em todos os outros objetivos de serviço do Banco de Dados SQL, a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader## são necessárias.

Permissões do SQL Server 2022 e posteriores

É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Exemplos

O exemplo a seguir retorna informações sobre os cinco principais gatilhos identificados por tempo médio decorrido.

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;  

Confira também

Funções e exibições de gerenciamento dinâmico relacionadas à execução (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)