Delen via


De uitgebreide gebeurtenissen die equivalenten zijn van SQL Trace-gebeurtenisklassen weergeven

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric Preview

Meer informatie over hoe de SQL Trace-gebeurtenissen worden toegewezen aan uitgebreide gebeurtenissen en acties. U kunt gebeurtenisgegevens verzamelen die gelijk zijn aan SQL Trace-gebeurtenisklassen en -kolommen.

U kunt de volgende procedure gebruiken om de gebeurtenissen en acties voor uitgebreide gebeurtenissen weer te geven die overeenkomen met elke SQL Trace-gebeurtenis en de bijbehorende kolommen.

Als u T-SQL-opdrachten wilt uitvoeren, gebruikt u SQL Server Management Studio (SSMS), de MSSQL-extensie voor Visual Studio Code, sqlcmd of uw favoriete hulpprogramma voor T-SQL-query's.

De uitgebreide gebeurtenissen weergeven die gelijk zijn aan SQL Trace-gebeurtenissen met behulp van Query-editor

  • Voer vanuit een query-editor in SQL Server Management Studio de volgende query uit:

    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;
    

Opmerking:

  • Als alle kolommen NULL retourneren, met uitzondering van de Event Class kolom, werd de gebeurtenisklasse niet gemigreerd vanuit SQL Trace.

  • Als alleen de waarde in de Extended Events action kolom is NULL, is aan een van de volgende voorwaarden voldaan:

    • De SQL Trace column wordt gekoppeld aan één van de gegevensvelden die behoren bij het Extended Events-evenement.

    • Elke gebeurtenis van Uitgebreide Gebeurtenissen heeft een standaardset van gegevensvelden die automatisch in de resultatenset worden opgenomen.

    • De action kolom heeft geen zinvol equivalent voor Extended Events. Een voorbeeld hiervan is de EventClass kolom in SQL Trace. Deze kolom is niet nodig in Uitgebreide gebeurtenissen omdat de gebeurtenisnaam hetzelfde doel heeft.

  • Uitgebreide gebeurtenissen maken gebruik van één gebeurtenis om configureerbare SQL Trace-gebeurtenisklassen (UserConfigurable:1 via UserConfigurable:9) te vervangen. De gebeurtenis heeft de naam user_event. Deze gebeurtenis wordt gegenereerd met behulp van sp_trace_generateeventdezelfde opgeslagen procedure die wordt gebruikt door SQL Trace. De user_event gebeurtenis wordt geretourneerd, ongeacht welke gebeurtenis-id wordt doorgegeven aan de opgeslagen procedure. event_id Een veld wordt echter geretourneerd als onderdeel van de gebeurtenisgegevens, die u kunt gebruiken om een predicaat te maken op basis van de gebeurtenis-id. Als u bijvoorbeeld (gebeurtenis-id = 82) in de code gebruikt UserConfigurable:0 , kunt u de user_event gebeurtenis toevoegen aan de sessie en een predicaat van event_id = 82opgeven. Daarom hoeft u de code niet te wijzigen omdat de sp_trace_generateevent opgeslagen procedure de gebeurtenis Uitgebreide gebeurtenissen user_event genereert en de equivalente SQL Trace-gebeurtenisklasse.