sys.dm_xe_session_targets
뷰는 SQL Server의 Extended Events (확장 이벤트) 기능에서 사용 중인 타겟(target) 에 대한 정보를 제공합니다. 이 DMV는 실행 중인 XE 세션의 타겟 구성과 상태를 실시간으로 모니터링할 때 유용합니다.
📌 개념 요약
- 확장 이벤트 타겟(Target): 이벤트 데이터를 저장하거나 처리하는 위치 (예: 메모리, 파일 등).
sys.dm_xe_session_targets
: 현재 실행 중인 세션에 연결된 타겟들의 정보 제공.
📋 주요 컬럼 설명
컬럼명 | 설명 |
---|---|
event_session_address | 세션의 메모리 주소 (XE 세션과 조인 시 사용) |
target_address | 타겟의 메모리 주소 |
target_name | 타겟의 이름 (예: ring_buffer , event_file , event_counter ) |
execution_count | 타겟이 실행된 횟수 |
last_execution_time | 마지막으로 타겟이 실행된 시간 |
target_data | 수집된 타겟 데이터 (XML 형식 또는 바이너리) |
📂 대표적인 타겟 종류
타겟 이름 | 설명 |
---|---|
ring_buffer | 메모리에 이벤트 데이터를 저장 (휘발성) |
event_file | 이벤트 데이터를 파일에 저장 (영속성) |
histogram | 통계 정보를 히스토그램 형태로 저장 |
event_counter | 이벤트 발생 횟수만 저장 |
🔍 활용 예제 1: ring_buffer
에서 이벤트 보기
SELECT
s.name AS session_name,
t.target_name,
CAST(t.target_data AS XML) AS target_data_xml
FROM
sys.dm_xe_session_targets t
JOIN
sys.dm_xe_sessions s ON t.event_session_address = s.address
WHERE
t.target_name = 'ring_buffer';
이 결과의 target_data_xml
컬럼은 이벤트 데이터가 XML로 포함되어 있습니다.
🔍 활용 예제 2: event_file
사용 중인 타겟 확인
SELECT
s.name AS session_name,
t.target_name,
CAST(t.target_data AS XML) AS target_data
FROM
sys.dm_xe_session_targets t
JOIN
sys.dm_xe_sessions s ON t.event_session_address = s.address
WHERE
t.target_name = 'event_file';
XML 내부에는 이벤트 파일 경로 등 메타데이터가 들어 있습니다.
🧩 함께 사용하면 좋은 DMV들
DMV | 설명 |
---|---|
sys.dm_xe_sessions | 현재 실행 중인 XE 세션 목록 |
sys.dm_xe_session_events | 세션에서 수집하고 있는 이벤트 정보 |
sys.dm_xe_session_event_actions | 이벤트에 연결된 액션 정보 |