Az SQL Trace-eseményosztályokkal egyenértékű kiterjesztett események megtekintése

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Ismerje meg, hogy az SQL Trace-események hogyan kapcsolódnak a kiterjesztett eseményekhez és műveletekhez. Az SQL Trace-eseményosztályokkal és -oszlopokkal egyenértékű eseményadatokat gyűjthet.

Az alábbi eljárással megtekintheti az egyes SQL Trace-eseményekkel és a hozzá tartozó oszlopokkal egyenértékű kiterjesztett eseményeket és műveleteket.

T-SQL-parancsok futtatásához használja az SQL Server Management Studio (SSMS) alkalmazást, a Visual Studio Code MSSQL-bővítményét, az sqlcmd-et vagy a kedvenc T-SQL-lekérdezési eszközét.

Az SQL Trace-eseményeknek megfelelő kiterjesztett események megtekintése a Lekérdezésszerkesztővel

  • Az SQL Server Management Studio lekérdezésszerkesztőjében futtassa a következő lekérdezést:

    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;
    

Megjegyzés:

  • ** Ha az összes oszlop NULL értéket ad vissza, kivéve a Event Class oszlopot, akkor az esemény osztály nem lett migrálva az SQL Trace-ből.

  • Ha az oszlopban csak az Extended Events action érték szerepel NULL, az alábbi feltételek bármelyike igaz:

    • A SQL Trace column kiterjesztett események eseményhez társított adatmezők egyikére képez le leképezést.

    • Minden kiterjesztett eseményhez tartozik egy alapértelmezett adatmezőkészlet, amely automatikusan szerepel az eredményhalmazban.

    • Az action oszlop nem rendelkezik jelentéssel bíró kiterjesztett eseményeknek megfelelővel. Ilyen például az EventClass SQL Trace oszlopa. Ez az oszlop nem szükséges a Bővített eseményekben, mert az esemény neve ugyanazt a célt szolgálja.

  • A kiterjesztett események egyetlen eseményt használnak a felhasználó által konfigurálható SQL Trace-eseményosztályok lecserélésére (UserConfigurable:1 ezen keresztül UserConfigurable:9). Az esemény neve user_event. Ez az esemény az SQL Trace által használt tárolt eljárással jön létre sp_trace_generateevent. Az user_event esemény attól függetlenül lesz visszaadva, hogy a rendszer melyik eseményazonosítót adja át a tárolt eljárásnak. A rendszer azonban egy event_id mezőt ad vissza az eseményadatok részeként, amelyekkel predikátumot hozhat létre az eseményazonosító alapján. Ha például a kódban (eseményazonosító = 82) használja UserConfigurable:0 , hozzáadhatja az user_event eseményt a munkamenethez, és megadhatja a predikátumát event_id = 82. Ezért nem kell módosítania a kódot, mert a sp_trace_generateevent tárolt eljárás létrehozza a Kiterjesztett események user_event eseményt és az azzal egyenértékű SQL Trace eseményosztályt.