Dela via


Visa ekvivalenter för utökade händelser till SQL Trace Event-klasser

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Förhandsversion av Microsoft Fabric

Lär dig hur SQL Trace-händelser mappas till händelser och åtgärder för utökade händelser. Du kan samla in händelsedata som motsvarar SQL Trace-händelseklasser och kolumner.

Du kan använda följande procedur för att visa händelser och åtgärder för utökade händelser som motsvarar varje SQL Trace-händelse och dess associerade kolumner.

Om du vill köra T-SQL-kommandon använder du SQL Server Management Studio (SSMS),MSSQL-tillägget för Visual Studio Code, sqlcmd eller ditt favoritverktyg för T-SQL-frågor.

Visa motsvarigheten för utökade händelser till SQL Trace-händelser med frågeredigeraren

  • Kör följande fråga från en frågeredigerare i 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;
    

Obs!

  • Om alla kolumner returneras NULL förutom Event Class kolumnen migrerades inte händelseklassen från SQL Trace.

  • Om endast värdet i Extended Events action kolumnen är NULLär något av följande villkor sant:

    • Mappen SQL Trace column motsvarar ett av de datafält som är associerade med Extended Events-händelsen.

    • Varje extended events-händelse har en standarduppsättning med datafält som automatiskt ingår i resultatuppsättningen.

    • Kolumnen action har ingen meningsfull motsvarighet till utökade händelser. Ett exempel är EventClass kolumnen i SQL Trace. Den här kolumnen behövs inte i Utökade händelser eftersom händelsenamnet har samma syfte.

  • Extended Events använder en enskild händelse för att ersätta användarkonfigurerbara SQL Trace-händelseklasser (UserConfigurable:1 via UserConfigurable:9). Händelsen heter user_event. Den här händelsen utlöses med hjälp sp_trace_generateeventav , vilket är samma lagrade procedur som används av SQL Trace. Händelsen user_event returneras oavsett vilket händelse-ID som skickas till den lagrade proceduren. Ett fält returneras dock event_id som en del av händelsedata, som du kan använda för att skapa ett predikat baserat på händelse-ID:t. Om du till exempel använder UserConfigurable:0 (händelse-ID = 82) i koden kan du lägga till user_event händelsen i sessionen och ange ett predikat för event_id = 82. Därför behöver du inte ändra koden eftersom den sp_trace_generateevent lagrade proceduren genererar händelsen Extended Events user_event och motsvarande SQL Trace-händelseklass.