다음을 통해 공유


SQL 추적 이벤트 클래스에 해당하는 확장 이벤트 보기

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric의 SQL 데이터베이스

SQL 추적 이벤트가 확장 이벤트 및 작업에 매핑하는 방법을 알아봅니다. SQL Trace 이벤트 클래스 및 열과 동일한 이벤트 데이터를 수집할 수 있습니다.

다음 절차에 따라 각 SQL 추적 이벤트 및 관련 열에 해당하는 확장 이벤트의 이벤트 및 동작을 확인할 수 있습니다.

T-SQL 명령을 실행하려면 SSMS(SQL Server Management Studio), Visual Studio Code용 MSSQL 확장, sqlcmd 또는 즐겨 찾는 T-SQL 쿼리 도구를 사용합니다.

쿼리 편집기를 사용하여 SQL 추적 이벤트에 해당하는 확장 이벤트 보기

  • SQL Server Management Studio의 쿼리 편집기 에서 다음 쿼리를 실행합니다.

    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         AS te
        LEFT JOIN sys.trace_xe_event_map   AS em ON te.trace_event_id  = em.trace_event_id
        LEFT JOIN sys.trace_event_bindings AS tb ON em.trace_event_id  = tb.trace_event_id
        LEFT JOIN sys.trace_columns        AS tc ON tb.trace_column_id = tc.trace_column_id
        LEFT JOIN sys.trace_xe_action_map  AS am ON tc.trace_column_id = am.trace_column_id
    ORDER BY te.name, tc.name;
    

고:

  • 모든 열이 NULL를 반환하고 Event Class 열만 제외되는 경우, 이벤트 클래스가 SQL Trace에서 마이그레이션되지 않았습니다.

  • Extended Events action의 값 NULL 만 있는 경우 다음 조건 중 하나가 true입니다.

    • 확장 이벤트와 연결된 데이터 필드 중 하나에 SQL Trace column가 매핑됩니다.

    • 확장 이벤트의 각 이벤트에는 결과 집합에 자동으로 포함되는 기본 데이터 필드 집합이 있습니다.

    • 열에 action 해당하는 의미 있는 확장 이벤트가 없습니다. 예를 들어 SQL Trace의 EventClass 열이 있습니다. 이벤트 이름이 동일한 용도로 사용되므로 이 열은 확장 이벤트에 필요하지 않습니다.

  • 확장 이벤트는 단일 이벤트를 사용하여 사용자가 구성할 수 있는 SQL Trace 이벤트 클래스(UserConfigurable:1 ~ UserConfigurable:9)를 대체합니다. 이벤트의 이름은 user_event.입니다. 이 이벤트는 SQL Trace에서 사용하는 것과 동일한 저장 프로시저인 sp_trace_generateevent을/를 사용하여 발생합니다. user_event 저장 프로시저에 전달되는 이벤트 ID에 관계없이 이벤트가 반환됩니다. 그러나 event_id 필드는 이벤트 데이터의 일부로 반환되며 이벤트 ID를 기반으로 조건자를 빌드하는 데 사용할 수 있습니다. 코드에서 UserConfigurable:0 (이벤트 ID = 82)를 사용하는 경우, 세션에 user_event 이벤트를 추가하고 event_id = 82 조건자를 지정할 수 있습니다. 따라서 저장 프로시저가 Extended Events sp_trace_generateevent 이벤트 및 동등한 SQL Trace 이벤트 클래스를 생성하므로 코드를 user_event 변경할 필요가 없습니다.