sys.dm_exec_trigger_stats(Transact-SQL)
캐시된 트리거에 대한 집계 성능 통계를 반환합니다. 이 뷰에는 트리거당 하나의 행이 포함되며 행의 유효 기간은 트리거가 캐시에 남아 있는 기간과 같습니다. 캐시에서 트리거가 제거되면 이 뷰에서도 해당 행이 제거됩니다. 이때 Performance Statistics SQL Trace 이벤트가 sys.dm_exec_query_stats와 유사하게 발생합니다.
열 이름 |
데이터 형식 |
설명 |
---|---|---|
database_id |
int |
이 트리거가 있는 데이터베이스 ID입니다. |
object_id |
int |
이 트리거의 개체 ID입니다. |
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 |
이 트리거가 컴파일된 이후 실행되는 데 사용된 총 CPU 시간(마이크로초)입니다. |
last_worker_time |
bigint |
이 트리거가 마지막으로 실행될 때 사용된 CPU 시간(마이크로초)입니다. |
min_worker_time |
bigint |
단일 실행 중 이 트리거에 사용된 최대 CPU 시간(마이크로초)입니다. |
max_worker_time |
bigint |
단일 실행 중 이 트리거에 사용된 최대 CPU 시간(마이크로초)입니다. |
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개의 CPU 사용 트리거에 대한 정보를 반환합니다.
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;
참고 항목
참조
변경 내역
업데이트된 내용 |
---|
업데이트된 코드로 예를 대체했습니다. |