SQL 추적 이벤트 클래스에 해당하는 확장 이벤트 보기
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
확장 이벤트를 사용하여 SQL 추적 이벤트 클래스 및 열에 해당하는 이벤트 데이터를 수집하려는 경우 SQL 추적 이벤트가 확장 이벤트의 이벤트 및 작업에 매핑되는 방식을 이해하는 것이 유용합니다.
다음 절차에 따라 각 SQL 추적 이벤트 및 관련 열에 해당하는 확장 이벤트의 이벤트 및 동작을 확인할 수 있습니다.
쿼리 편집기를 사용하여 SQL 추적 이벤트에 해당하는 확장 이벤트 확인하기
SQL Server Management Studio의 쿼리 편집기에서 다음 쿼리를 실행합니다.
USE MASTER; GO SELECT DISTINCT tb.trace_event_id, te.name AS 'Event Class', em.package_name AS 'Package', em.xe_event_name AS 'XEvent Name', tb.trace_column_id, tc.name AS 'SQL Trace Column', am.xe_action_name AS 'Extended Events action' FROM sys.trace_events te LEFT JOIN sys.trace_xe_event_map em ON te.trace_event_id = em.trace_event_id LEFT JOIN sys.trace_event_bindings tb ON em.trace_event_id = tb.trace_event_id LEFT JOIN sys.trace_columns tc ON tb.trace_column_id = tc.trace_column_id LEFT JOIN sys.trace_xe_action_map am ON tc.trace_column_id = am.trace_column_id ORDER BY te.name, tc.name
결과를 볼 때 다음 사항에 유의하세요.
이벤트 클래스 열을 제외한 모든 열이 NULL을 반환하면 이벤트 클래스가 SQL 추적에서 마이그레이션되지 않음을 나타냅니다.
확장 이벤트 작업 열의 값만 NULL이면 다음 조건 중 하나가 true임을 나타냅니다.
SQL 추적 열은 확장 이벤트의 이벤트와 관련된 데이터 필드 중 하나에 매핑됩니다.
참고 항목
확장 이벤트의 각 이벤트에는 결과 집합에 자동으로 포함되는 기본 데이터 필드 집합이 있습니다.
작업 열에 해당하는 의미 있는 확장 이벤트가 없습니다. 예를 들어 SQL 추적의 EventClass 열이 이러한 경우에 해당합니다. 이벤트 이름이 동일한 용도로 사용되므로 이 열은 확장 이벤트에 필요하지 않습니다.
사용자가 구성할 수 있는 SQL 추적 이벤트 클래스(UserConfigurable:1 ~ UserConfigurable:9)의 경우 확장 이벤트에서는 단일 이벤트를 사용하여 이러한 이벤트 클래스를 대체합니다. 이 이벤트의 이름은 user_event입니다. 이 이벤트는 SQL 추적에서 사용하는 것과 동일한 저장 프로시저인 sp_trace_generateevent를 사용하여 발생합니다. user_event 이벤트는 저장 프로시저에 전달되는 이벤트 ID에 관계없이 반환됩니다. 그러나 event_id 필드는 이벤트 데이터의 일부로 반환됩니다. 이 필드를 사용하여 이벤트 ID를 기반으로 하는 조건자를 만들 수 있습니다. 예를 들어 코드에서 UserConfigurable:0(이벤트 ID = 82)을 사용하는 경우 세션에 user_event 이벤트를 추가하고 'event_id = 82'라는 조건자를 지정할 수 있습니다. 그에 따라 sp_trace_generateevent 저장 프로시저에서 확장 이벤트의 user_event 이벤트와 해당하는 SQL 추적 이벤트 클래스를 생성하므로 코드를 변경할 필요가 없습니다.