Sdílet prostřednictvím


Zobrazení ekvivalentů rozšířených událostí ke třídám událostí trasování SQL

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLDatabáze SQL v Microsoft Fabric

Zjistěte, jak se události trasování SQL mapují na události a akce systému Rozšířených událostí. Můžete shromažďovat data událostí, která jsou ekvivalentní třídám a sloupcům událostí trasování SQL.

Následující postup slouží k zobrazení událostí a akcí rozšířených událostí, které jsou ekvivalentní každé události trasování SQL a přidruženým sloupcům.

Pokud chcete spouštět příkazy T-SQL, použijte SQL Server Management Studio (SSMS),rozšíření MSSQL pro Visual Studio Code, sqlcmd nebo váš oblíbený nástroj pro dotazování T-SQL.

Zobrazte ekvivalenty rozšířených událostí k událostem trasování SQL pomocí Editoru dotazů.

  • V editoru dotazů v aplikaci SQL Server Management Studio spusťte následující dotaz:

    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;
    

Poznámka:

  • Pokud se všechny sloupce vrátí NULL kromě sloupce Event Class, třída události nebyla migrována z trasování SQL.

  • Pokud je ve sloupci Extended Events action hodnota jen NULL, platí jedna z následujících podmínek:

    • Mapuje se SQL Trace column na jedno z datových polí přidružených k události Extended Events.

    • Každá událost Rozšířených událostí má výchozí sadu datových polí, která jsou automaticky zahrnuta do sady výsledků.

    • Sloupec action nemá smysluplný ekvivalent rozšířených událostí. Příkladem je sloupec EventClass ve sledování SQL. Tento sloupec není v rozšířených událostech potřeba, protože název události slouží stejnému účelu.

  • Rozšířené události používají jednu událost k nahrazení uživatelsky konfigurovatelných tříd událostí trasování SQL (UserConfigurable:1 prostřednictvím UserConfigurable:9). Událost má název user_event. Tato událost je vyvolána pomocí sp_trace_generateevent, což je stejná uložená procedura, kterou používá trasování SQL. Událost user_event se vrátí bez ohledu na to, které ID události se předává uložené proceduře. event_id Pole se ale vrátí jako součást dat události, které můžete použít k vytvoření predikátu na základě ID události. Pokud například v kódu použijete UserConfigurable:0 (ID události = 82), můžete událost přidat user_event do relace a zadat predikát event_id = 82. Proto nemusíte měnit kód, protože sp_trace_generateevent uložená procedura generuje událost Extended Events user_event a ekvivalentní třídu událostí trasování SQL.

  • sp_trace_generateevent (Transact-SQL)