Compartilhar via


Exibir os Eventos Estendidos equivalentes às classes de rastreamento de eventos do SQL

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric

Saiba como os eventos de rastreamento do SQL são mapeados para eventos e ações de Eventos Estendidos. Você pode coletar dados de eventos equivalentes às classes e colunas de eventos do SQL Trace.

Você pode usar o seguinte procedimento para exibir os eventos e as ações dos Eventos Estendidos que são equivalentes a cada evento do Rastreamento do SQL e suas colunas associadas.

Para executar comandos T-SQL, use o SSMS (SQL Server Management Studio), a extensão MSSQL para Visual Studio Code, sqlcmd ou sua ferramenta de consulta T-SQL favorita.

Exibir os equivalentes de Eventos Estendidos para eventos de rastreamento do SQL usando o Editor de Consultas

  • Em um Editor de Consultas no SQL Server Management Studio, execute a seguinte consulta:

    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;
    

Observação:

  • Se todas as colunas retornarem NULL , exceto a Event Class coluna, a classe de evento não foi migrada do Rastreamento do SQL.

  • Se apenas o valor na Extended Events action coluna for NULL, qualquer uma das seguintes condições será verdadeira:

    • O SQL Trace column mapeia para um dos campos de dados associados ao Extended Events.

    • Cada evento dos Eventos Estendidos tem um conjunto padrão de campos de dados que são incluídos automaticamente no conjunto de resultados.

    • A coluna action não tem um equivalente significativo de Eventos Estendidos. Um exemplo é a coluna EventClass no rastreamento de SQL. Essa coluna não é necessária nos Eventos Estendidos porque o nome do evento atende ao mesmo objetivo.

  • Os Eventos Estendidos usa um único evento para substituir classes de evento de Rastreamento SQL configuráveis pelo usuário (UserConfigurable:1 através de UserConfigurable:9). O evento é chamado user_event. Esse evento é gerado usando sp_trace_generateevent, que é o mesmo procedimento armazenado usado pelo Rastreamento de SQL. O user_event evento é retornado independentemente de qual ID de evento é passada para o procedimento armazenado. No entanto, um event_id campo é retornado como parte dos dados do evento, que você pode usar para criar um predicado com base na ID do evento. Por exemplo, se você usar UserConfigurable:0 (ID do evento = 82) no código, poderá adicionar o user_event evento à sessão e especificar um predicado de event_id = 82. Portanto, você não precisa alterar o código porque o sp_trace_generateevent procedimento armazenado gera o evento de Eventos Estendidos user_event e a classe de evento de SQL Trace equivalente.