Teilen über


Anzeigen der Entsprechungen von erweiterten Ereignissen für SQL-Ablaufverfolgungsklassen

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-Datenbank in Microsoft Fabric

Erfahren Sie, wie die SQL-Ablaufverfolgungsereignisse erweiterten Ereignissen und Aktionen zugeordnet sind. Sie können Ereignisdaten sammeln, die sql Trace-Ereignisklassen und -Spalten entsprechen.

Gehen Sie folgendermaßen vor, um die Ereignisse und Aktionen für erweiterte Ereignisse anzuzeigen, die den einzelnen SQL-Ablaufverfolgungsereignissen und deren zugeordneten Spalten entsprechen.

Zum Ausführen von T-SQL-Befehlen verwenden Sie SQL Server Management Studio (SSMS),die MSSQL-Erweiterung für Visual Studio Code, sqlcmd oder Ihr bevorzugtes T-SQL-Abfragetool.

Anzeigen der Entsprechungen von erweiterten Ereignissen zu SQL Trace-Ereignissen im Abfrage-Editor.

  • Führen Sie in einem Abfrage-Editor in SQL Server Management Studio die folgende Abfrage aus:

    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;
    

Hinweis:

  • Wenn alle Spalten mit Ausnahme der NULL Spalte zurückgegeben Event Class werden, wurde die Ereignisklasse nicht aus SQL Trace migriert.

  • Wenn nur der Wert in der Extended Events action Spalte NULL ist, ist eine der folgenden Bedingungen wahr:

    • Die SQL Trace column ordnet sich einem der Datenfelder zu, die mit dem Ereignis 'Extended Events' verbunden sind.

    • Jedes Ereignis für erweiterte Ereignisse verfügt über ein Standardsatz von Datenfeldern, die automatisch im Resultset enthalten sind.

    • Die action Spalte verfügt nicht über eine sinnvolle Entsprechung für erweiterte Ereignisse. Ein Beispiel ist die EventClass Spalte in SQL Trace. Diese Spalte wird nicht in den erweiterten Ereignissen benötigt, da der Ereignisname demselben Zweck dient.

  • Erweiterte Ereignisse verwenden ein einzelnes Ereignis, um vom Benutzer konfigurierbare SQL Trace-Ereignisklassen (UserConfigurable:1 bis UserConfigurable:9) zu ersetzen. Das Ereignis wird benannt user_event. Dieses Ereignis wird mithilfe sp_trace_generateeventder gleichen gespeicherten Prozedur ausgelöst, die von SQL Trace verwendet wird. Das user_event Ereignis wird unabhängig davon zurückgegeben, welche Ereignis-ID an die gespeicherte Prozedur übergeben wird. Ein event_id Feld wird jedoch als Teil der Ereignisdaten zurückgegeben, mit denen Sie ein Prädikat basierend auf der Ereignis-ID erstellen können. Wenn Sie beispielsweise UserConfigurable:0 (Ereignis-ID = 82) im Code verwenden, können Sie das Ereignis user_event zu der Sitzung hinzufügen und den Ausdruck event_id = 82 als Prädikat angeben. Daher müssen Sie den Code nicht ändern, da die sp_trace_generateevent gespeicherte Prozedur das Ereignis "Extended Events user_event " und die entsprechende SQL Trace-Ereignisklasse generiert.