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 Básico, S0 e S1 do Banco de Dados SQL e para bancos de dados em pools elásticos, a conta de administrador do servidor, a conta de administrador do Microsoft Entra ou a ##MS_ServerStateReader##
associação na função de servidor são necessárias. 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)