Performance Statistics 이벤트 클래스를 사용하여 실행 중인 쿼리, 저장 프로시저 및 트리거의 성능을 모니터링할 수 있습니다. 6개의 이벤트 서브클래스는 각각 시스템 내의 쿼리, 저장 프로시저 및 트리거의 수명 동안 이벤트를 나타냅니다. 이러한 이벤트 하위 클래스와 연결된 sys.dm_exec_query_stats, sys.dm_exec_procedure_stats 및 sys.dm_exec_trigger_stats 동적 관리 뷰의 조합을 사용하여 지정된 쿼리, 저장 프로시저 또는 트리거의 성능 기록을 다시 구성할 수 있습니다.
성능 통계 이벤트 클래스 데이터 열
다음 표에서는 EventSubClass 0, EventSubClass 1, EventSubClass 2, EventSubClass 3, EventSubClass 4 및 EventSubClass 5의 각 이벤트 서브클래스와 연결된 이벤트 클래스 데이터 열을 설명합니다.
EventSubClass 0
| 데이터 열 이름 | 데이터 형식 | 설명 | 열 ID | 필터 가능 |
|---|---|---|---|---|
| BigintData1 | bigint |
없음 | 52 | 예 |
| BinaryData | image |
없음 | 2 | 예 |
| 데이터베이스ID | int |
지정된 인스턴스에 대해 USE 데이터베이스 문이 실행되지 않은 경우 USE 데이터베이스 문 또는 기본 데이터베이스에 지정된 데이터베이스의 ID입니다. SQL Server Profiler는 ServerName 데이터 열이 추적에 캡처되고 서버를 사용할 수 있는 경우 데이터베이스의 이름을 표시합니다. DB_ID 함수를 사용하여 데이터베이스의 값을 결정합니다. | 3 | 예 |
| 이벤트 순서 | int |
요청 내에 지정된 이벤트 시퀀스입니다. | 51 | 아니오 |
| 이벤트 하위 클래스 | int |
이벤트 하위 클래스의 유형입니다. 0 = 현재 캐시에 없는 새 일괄 처리 SQL 텍스트입니다. 다음 EventSubClass 형식은 임시 일괄 처리에 대한 추적에서 생성됩니다. n개의 쿼리가 있는 임시 일괄 처리의 경우: 형식 0 중 1 |
21 | 예 |
| IntegerData2 | int |
없음 | 55 | 예 |
| 오브젝트 ID | int |
없음 | 22 (이십이) | 예 |
| 상쇄 | int |
없음 | 61 | 예 |
| PlanHandle | Image |
없음 | 65 | 예 |
| SessionLoginName | nvarchar |
세션을 시작한 사용자의 로그인 이름입니다. 예를 들어 Login1을 사용하여 SQL Server에 연결하고 Login2로 문을 실행하는 경우 SessionLoginName은 Login1을 표시하고 LoginName은 Login2를 표시합니다. 이 열에는 SQL Server 및 Windows 로그인이 모두 표시됩니다. | 64 | 예 |
| SPID | int |
이벤트가 발생한 세션의 ID입니다. | 12 | 예 |
| SqlHandle | image |
sys.dm_exec_sql_text 동적 관리 뷰를 사용하여 일괄 처리 SQL 텍스트를 가져오는 데 사용할 수 있는 SQL 핸들입니다. | 63 | 예 |
| 시작 시간 | datetime |
이벤트가 시작된 시간(사용 가능한 경우)입니다. | 14 | 예 |
| 텍스트 데이터 | ntext |
일괄 처리의 SQL 텍스트입니다. | 1 | 예 |
EventSubClass 1
| 데이터 열 이름 | 데이터 형식 | 설명 | 열 ID | 필터 가능 |
|---|---|---|---|---|
| BigintData1 | bigint |
이 계획이 다시 컴파일된 누적 횟수입니다. | 52 | 예 |
| BinaryData | image |
컴파일된 계획의 이진 XML입니다. | 2 | 예 |
| 데이터베이스ID | int |
지정된 인스턴스에 대해 USE 데이터베이스 문이 실행되지 않은 경우 USE 데이터베이스 문 또는 기본 데이터베이스에 지정된 데이터베이스의 ID입니다. SQL Server Profiler는 ServerName 데이터 열이 추적에 캡처되고 서버를 사용할 수 있는 경우 데이터베이스의 이름을 표시합니다. DB_ID 함수를 사용하여 데이터베이스의 값을 결정합니다. | 3 | 예 |
| 이벤트 순서 | int |
요청 내에 지정된 이벤트 시퀀스입니다. | 51 | 아니오 |
| SessionLoginName | nvarchar |
세션을 시작한 사용자의 로그인 이름입니다. 예를 들어 Login1을 사용하여 SQL Server에 연결하고 Login2로 문을 실행하는 경우 SessionLoginName은 Login1을 표시하고 LoginName은 Login2를 표시합니다. 이 열에는 SQL Server 및 Windows 로그인이 모두 표시됩니다. | 64 | 예 |
| 이벤트 하위 클래스 | int |
이벤트 하위 클래스의 유형입니다. 1 = 저장 프로시저 내의 쿼리가 컴파일되었습니다. 다음 EventSubClass 형식은 저장 프로시저에 대한 추적에서 생성됩니다. "n개의 쿼리를 포함하는 저장 프로시저의 경우:" 형 1의 개수 n |
21 | 예 |
| IntegerData2 | int |
저장 프로시저 내의 문의 끝입니다. 저장 프로시저 끝의 경우 -1입니다. |
55 | 예 |
| 오브젝트 ID | int |
개체의 시스템 할당 ID입니다. | 22 (이십이) | 예 |
| 상쇄 | int |
저장 프로시저나 일괄 처리 내에 있는 문의 시작 오프셋입니다. | 61 | 예 |
| SPID | int |
이벤트가 발생한 세션의 ID입니다. | 12 | 예 |
| SqlHandle | image |
dm_exec_sql_text 동적 관리 뷰를 사용하여 저장 프로시저의 SQL 텍스트를 가져오는 데 사용할 수 있는 SQL 핸들입니다. | 63 | 예 |
| 시작 시간 | datetime |
이벤트가 시작된 시간(사용 가능한 경우)입니다. | 14 | 예 |
| 텍스트 데이터 | ntext |
없음 | 1 | 예 |
| 계획 처리기 | image |
저장 프로시저에 대해 컴파일된 플랜의 핸들입니다. sys.dm_exec_query_plan 동적 관리 뷰를 사용하여 XML 계획을 가져오는 데 사용할 수 있습니다. | 65 | 예 |
| 객체 유형 | int |
이벤트에 관련된 개체의 형식을 나타내는 값입니다. 8272 = 저장 프로시저 |
28 | 예 |
| BigintData2 | bigint |
컴파일 중에 사용되는 총 메모리(킬로바이트)입니다. | 53 | 예 |
| CPU (중앙 처리 장치) | int |
컴파일하는 동안 소요된 총 CPU 시간(밀리초)입니다. | 18 | 예 |
| 기간 | int |
컴파일하는 동안 소요된 총 시간(마이크로초)입니다. | 13 | 예 |
| 정수형 데이터 | int |
컴파일된 계획의 크기(킬로바이트)입니다. | 이십오 (25) | 예 |
이벤트서브클래스 2
| 데이터 열 이름 | 데이터 형식 | 설명 | 열 ID | 필터 가능 |
|---|---|---|---|---|
| BigintData1 | bigint |
이 계획이 다시 컴파일된 누적 횟수입니다. | 52 | 예 |
| BinaryData | image |
컴파일된 계획의 이진 XML입니다. | 2 | 예 |
| 데이터베이스ID | int |
지정된 인스턴스에 대해 USE 데이터베이스 문이 실행되지 않은 경우 USE 데이터베이스 문 또는 기본 데이터베이스에 지정된 데이터베이스의 ID입니다. SQL Server Profiler는 ServerName 데이터 열이 추적에 캡처되고 서버를 사용할 수 있는 경우 데이터베이스의 이름을 표시합니다. DB_ID 함수를 사용하여 데이터베이스의 값을 결정합니다. | 3 | 예 |
| 이벤트 순서 | int |
요청 내에 지정된 이벤트 시퀀스입니다. | 51 | 아니오 |
| SessionLoginName | nvarchar |
세션을 시작한 사용자의 로그인 이름입니다. 예를 들어 Login1을 사용하여 SQL Server에 연결하고 Login2로 문을 실행하는 경우 SessionLoginName은 Login1을 표시하고 LoginName은 Login2를 표시합니다. 이 열에는 SQL Server 및 Windows 로그인이 모두 표시됩니다. | 64 | 예 |
| 이벤트 하위 클래스 | int |
이벤트 하위 클래스의 유형입니다. 2 = 임시 SQL 문 내의 쿼리가 컴파일되었습니다. 다음 EventSubClass 형식은 임시 일괄 처리에 대한 추적에서 생성됩니다. n개의 쿼리가 있는 임시 일괄 처리의 경우: 형식 2의 n 번호 |
21 | 예 |
| 정수데이터2 | int |
일괄 처리 내 문의 끝입니다. 일괄 처리의 끝을 표시하기 위해 -1을 사용합니다. |
55 | 예 |
| 오브젝트 ID | int |
해당 없음(N/A) | 22 (이십이) | 예 |
| 상쇄 | int |
일괄 처리 내에서 문장의 시작 오프셋입니다. 일괄 처리의 시작 부분을 위해 0입니다. |
61 | 예 |
| SPID | int |
이벤트가 발생한 세션의 ID입니다. | 12 | 예 |
| SqlHandle | image |
SQL 핸들입니다. dm_exec_sql_text 동적 관리 뷰를 사용하여 일괄 처리 SQL 텍스트를 가져오는 데 사용할 수 있습니다. | 63 | 예 |
| 시작 시간 | datetime |
이벤트가 시작된 시간(사용 가능한 경우)입니다. | 14 | 예 |
| 텍스트 데이터 | ntext |
없음 | 1 | 예 |
| 플랜핸들 | image |
일괄 처리에 대해 컴파일된 계획의 계획 핸들입니다. dm_exec_query_plan 동적 관리 뷰를 사용하여 일괄 처리 XML 계획을 가져오는 데 사용할 수 있습니다. | 65 | 예 |
| BigintData2 | bigint |
컴파일 중에 사용되는 총 메모리(킬로바이트)입니다. | 53 | 예 |
| CPU (중앙 처리 장치) | int |
컴파일하는 동안 소요된 총 CPU 시간(마이크로초)입니다. | 18 | 예 |
| 기간 | int |
컴파일하는 동안 소요된 총 시간(밀리초)입니다. | 13 | 예 |
| 정수형 데이터 | int |
컴파일된 계획의 크기(킬로바이트)입니다. | 이십오 (25) | 예 |
이벤트서브클래스 3
| 데이터 열 이름 | 데이터 형식 | 설명 | 열 ID | 필터 가능 |
|---|---|---|---|---|
| BigintData1 | bigint |
이 계획이 다시 컴파일된 누적 횟수입니다. | 52 | 예 |
| BinaryData | image |
없음 | 2 | 예 |
| 데이터베이스ID | int |
지정된 인스턴스에 대해 USE 데이터베이스 문이 실행되지 않은 경우 USE 데이터베이스 문 또는 기본 데이터베이스에 지정된 데이터베이스의 ID입니다. SQL Server Profiler는 ServerName 데이터 열이 추적에 캡처되고 서버를 사용할 수 있는 경우 데이터베이스의 이름을 표시합니다. DB_ID 함수를 사용하여 데이터베이스의 값을 결정합니다. | 3 | 예 |
| 이벤트 순서 | int |
요청 내에 지정된 이벤트 시퀀스입니다. | 51 | 아니오 |
| SessionLoginName | nvarchar |
세션을 시작한 사용자의 로그인 이름입니다. 예를 들어 Login1을 사용하여 SQL Server에 연결하고 Login2로 문을 실행하는 경우 SessionLoginName은 Login1을 표시하고 LoginName은 Login2를 표시합니다. 이 열에는 SQL Server 및 Windows 로그인이 모두 표시됩니다. | 64 | 예 |
| 이벤트 하위 클래스 | int |
이벤트 하위 클래스의 유형입니다. 3 = 캐시된 쿼리가 삭제되었으며 계획과 연결된 기록 성능 데이터가 제거될 예정입니다. 추적에서 생성되는 EventSubClass 형식은 다음과 같습니다. n개의 쿼리가 있는 임시 일괄 처리의 경우: 쿼리가 캐시에서 삭제될 때 유형 3의 항목 중 하나 쿼리가 n개 있는 저장 프로시저의 경우: 쿼리가 캐시에서 플러시되는 경우 유형 3 중 1개입니다. |
21 | 예 |
| IntegerData2 | int |
저장 프로시저 또는 일괄 처리 내의 문장의 끝입니다. 저장 프로시저 또는 일괄 처리의 끝 부분에 대해 -1입니다. |
55 | 예 |
| 오브젝트 ID | int |
없음 | 22 (이십이) | 예 |
| 상쇄 | int |
저장 프로시저나 일괄 처리 내에 있는 문의 시작 오프셋입니다. 저장 프로시저 또는 일괄 처리의 시작 부분에 대해 0입니다. |
61 | 예 |
| SPID | int |
이벤트가 발생한 세션의 ID입니다. | 12 | 예 |
| SqlHandle | image |
dm_exec_sql_text 동적 관리 뷰를 사용하여 저장 프로시저 또는 일괄 처리 SQL 텍스트를 가져오는 데 사용할 수 있는 SQL 핸들입니다. | 63 | 예 |
| 시작 시간 | datetime |
이벤트가 시작된 시간(사용 가능한 경우)입니다. | 14 | 예 |
| 텍스트 데이터 | ntext |
쿼리 실행 통계 | 1 | 예 |
| PlanHandle | image |
저장 프로시저 또는 일괄 처리에 대해 컴파일된 플랜의 플랜 핸들러입니다. dm_exec_query_plan 동적 관리 뷰를 사용하여 XML 계획을 가져오는 데 사용할 수 있습니다. | 65 | 예 |
| 그룹 ID | int |
SQL Trace 이벤트가 발생하는 워크로드 그룹의 ID입니다. | 66 | 예 |
EventSubClass 4
| 데이터 열 이름 | 데이터 형식 | 설명 | 열 ID | 필터 가능 |
|---|---|---|---|---|
| BigintData1 | bigint |
없음 | 52 | 예 |
| BinaryData | image |
없음 | 2 | 예 |
| 데이터베이스ID | int |
지정된 저장 프로시저가 있는 데이터베이스의 ID입니다. | 3 | 예 |
| 이벤트 순서 | int |
요청 내에 지정된 이벤트 시퀀스입니다. | 51 | 아니오 |
| SessionLoginName | nvarchar |
세션을 시작한 사용자의 로그인 이름입니다. 예를 들어 Login1을 사용하여 SQL Server에 연결하고 Login2로 문을 실행하는 경우 SessionLoginName은 Login1을 표시하고 LoginName은 Login2를 표시합니다. 이 열에는 SQL Server 및 Windows 로그인이 모두 표시됩니다. | 64 | 예 |
| 이벤트 하위 클래스 | int |
이벤트 하위 클래스의 유형입니다. 4 = 캐시된 저장 프로시저가 캐시에서 제거되고 연결된 기록 성능 데이터가 제거됩니다. |
21 | 예 |
| IntegerData2 | int |
없음 | 55 | 예 |
| 오브젝트 ID | int |
저장 프로시저의 ID입니다. 이는 sys.procedures의 object_id 열과 동일합니다. | 22 (이십이) | 예 |
| 상쇄 | int |
없음 | 61 | 예 |
| SPID | int |
이벤트가 발생한 세션의 ID입니다. | 12 | 예 |
| SqlHandle | image |
dm_exec_sql_text 동적 관리 뷰를 사용하여 실행된 저장 프로시저 SQL 텍스트를 가져오는 데 사용할 수 있는 SQL 핸들입니다. | 63 | 예 |
| 시작 시간 | datetime |
이벤트가 시작된 시간(사용 가능한 경우)입니다. | 14 | 예 |
| 텍스트 데이터 | ntext |
프로시저 실행 통계 | 1 | 예 |
| PlanHandle | image |
저장 프로시저에 대해 컴파일된 계획의 계획 핸들입니다. dm_exec_query_plan 동적 관리 뷰를 사용하여 XML 계획을 가져오는 데 사용할 수 있습니다. | 65 | 예 |
| 그룹 ID | int |
SQL Trace 이벤트가 발생하는 워크로드 그룹의 ID입니다. | 66 | 예 |
EventSubClass 5
| 데이터 열 이름 | 데이터 형식 | 설명 | 열 ID | 필터 가능 |
|---|---|---|---|---|
| BigintData1 | bigint |
없음 | 52 | 예 |
| BinaryData | image |
없음 | 2 | 예 |
| 데이터베이스ID | int |
지정된 트리거가 있는 데이터베이스의 ID입니다. | 3 | 예 |
| 이벤트 순서 | int |
요청 내에 지정된 이벤트 시퀀스입니다. | 51 | 아니오 |
| SessionLoginName | nvarchar |
세션을 시작한 사용자의 로그인 이름입니다. 예를 들어 Login1을 사용하여 SQL Server에 연결하고 Login2로 문을 실행하는 경우 SessionLoginName은 Login1을 표시하고 LoginName은 Login2를 표시합니다. 이 열에는 SQL Server 및 Windows 로그인이 모두 표시됩니다. | 64 | 예 |
| 이벤트 하위 클래스 | int |
이벤트 하위 클래스의 유형입니다. 5 = 캐시된 트리거가 캐시에서 제거되었으며 연결된 기록 성능 데이터가 제거됩니다. |
21 | 예 |
| IntegerData2 | int |
없음 | 55 | 예 |
| 오브젝트 ID | int |
트리거의 "ID"입니다. 이는 sys.triggers/sys.server_triggers 카탈로그 뷰의 object_id 열과 동일합니다. | 22 (이십이) | 예 |
| 상쇄 | int |
없음 | 61 | 예 |
| SPID | int |
이벤트가 발생한 세션의 ID입니다. | 12 | 예 |
| SqlHandle | image |
dm_exec_sql_text 동적 관리 뷰를 사용하여 트리거의 SQL 텍스트를 가져오는 데 사용할 수 있는 SQL 핸들입니다. | 63 | 예 |
| 시작 시간 | datetime |
이벤트가 시작된 시간(사용 가능한 경우)입니다. | 14 | 예 |
| 텍스트 데이터 | ntext |
TriggerExecutionStats | 1 | 예 |
| 플랜핸들 | image |
트리거에 대해 컴파일된 계획의 계획 핸들입니다. dm_exec_query_plan 동적 관리 뷰를 사용하여 XML 계획을 가져오는 데 사용할 수 있습니다. | 65 | 예 |
| 그룹 ID | int |
SQL Trace 이벤트가 발생하는 워크로드 그룹의 ID입니다. | 66 | 예 |
또한 참조하십시오
확장 이벤트
sp_trace_setevent(Transact-SQL)
쿼리 컴파일 이벤트 클래스에 대한 쇼플랜 XML
동적 관리 뷰 및 함수(Transact-SQL)