적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric의 SQL 데이터베이스
캐시된 트리거에 대한 집계 성능 통계를 반환합니다. 뷰에는 트리거당 하나의 행이 포함되며, 트리거가 캐시된 상태로 유지되는 한 행의 수명은 유지됩니다. 캐시에서 트리거가 제거되면 이 뷰에서도 해당 행이 제거됩니다. 이때 성능 통계 SQL 추적 이벤트는 sys.dm_exec_query_stats와 유사하게 발생합니다.
| 열 이름 | 데이터 형식 | 설명 |
|---|---|---|
| database_id | int | 트리거가 있는 데이터베이스 ID입니다. Azure SQL Database에서 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 고유하지 않습니다. |
| 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 | 날짜/시간 | 이 트리거가 캐시에 추가된 시간입니다. |
| last_execution_time | 날짜/시간 | 트리거가 마지막으로 실행된 시간입니다. |
| 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 | 이 트리거의 완료된 실행에 대한 최대 경과 시간(마이크로초)입니다. |
| 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 | 컴파일된 이후 이 트리거의 실행에 의해 수행된 총 페이지 서버 읽기 수입니다. 적용 대상: Azure SQL Database 하이퍼스케일 |
| last_page_server_reads | bigint | 트리거가 마지막으로 실행되었을 때 수행된 페이지 서버 읽기 수입니다. 적용 대상: Azure SQL Database 하이퍼스케일 |
| min_page_server_reads | bigint | 단일 실행 중에 이 트리거가 수행한 최소 페이지 서버 읽기 수입니다. 적용 대상: Azure SQL Database 하이퍼스케일 |
| max_page_server_reads | bigint | 단일 실행 중에 이 트리거가 수행한 최대 페이지 서버 읽기 수입니다. 적용 대상: Azure SQL Database 하이퍼스케일 |
설명
SQL Database에서 동적 관리 뷰는 데이터베이스 포함에 영향을 주는 정보를 노출하거나 사용자가 액세스할 수 있는 다른 데이터베이스에 대한 정보를 노출할 수 없습니다. 이 정보를 노출하지 않으려면 연결된 테넌트에 속하지 않는 데이터가 포함된 모든 행이 필터링됩니다.
뷰의 통계는 쿼리가 완료되면 업데이트됩니다.
사용 권한
SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE 권한이 필요합니다.
SQL Database Basic, S0 및 S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 ##MS_ServerStateReader##서버 역할의 멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE 권한 또는 ##MS_ServerStateReader## 서버 역할의 멤버 자격이 필요합니다.
SQL Server 2022 이상에 대한 사용 권한
서버에 대한 SERVER PERFORMANCE STATE 권한이 필요합니다 VIEW .
예제
다음 예제에서는 평균 경과 시간으로 식별되는 상위 5개 트리거에 대한 정보를 반환합니다.
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)