Condividi tramite


Visualizzare gli eventi estesi equivalenti alle classi di eventi di Traccia SQL

Si applica a:SQL ServerAzure SQL DatabaseAzure SQL Istanza gestitaDatabase SQL in Microsoft Fabric

Scopri come gli eventi di Traccia SQL si mappano agli eventi e azioni degli Eventi Estesi. È possibile raccogliere i dati dell'evento equivalenti alle colonne e alle classi di evento di Traccia SQL.

È possibile utilizzare la procedura seguente per visualizzare gli eventi e le azioni degli eventi estesi equivalenti a ogni evento di Traccia SQL e alle colonne associate.

Per eseguire comandi T-SQL, usare SQL Server Management Studio (SSMS),l'estensione MSSQL per Visual Studio Code, sqlcmd o lo strumento di query T-SQL preferito.

Visualizzare gli eventi estesi equivalenti agli eventi di traccia SQL tramite l'editor di query

  • Da un editor di query in SQL Server Management Studio eseguire la query seguente:

    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;
    

Nota:

  • Se tutte le colonne restituiscono NULL tranne la colonna Event Class, la classe di evento non è stata migrata dalla SQL Trace.

  • Se solo il valore nella Extended Events action colonna è NULL, una delle condizioni seguenti è true:

    • Il SQL Trace column mappa su uno dei campi dati associati all'evento Extended Events.

    • Ogni evento degli eventi estesi dispone di un set predefinito di campi dati che vengono inclusi automaticamente nel set di risultati.

    • La colonna action non ha un equivalente significativo per gli Eventi Estesi. Un esempio è la EventClass colonna in Traccia SQL. Questo colonna non è necessaria negli eventi estesi in quanto il nome dell'evento svolge lo stesso ruolo.

  • Gli eventi estesi usano un singolo evento per sostituire le classi di evento di Traccia SQL configurabili dall'utente (UserConfigurable:1 tramite UserConfigurable:9). L'evento è denominato user_event. Questo evento viene generato utilizzando sp_trace_generateevent, la stessa stored procedure usata da SQL Trace. L'evento user_event viene restituito indipendentemente dall'ID evento passato alla stored procedure. Tuttavia, un event_id campo viene restituito come parte dei dati dell'evento, che è possibile usare per compilare un predicato in base all'ID evento. Ad esempio, se si usa UserConfigurable:0 (ID evento = 82) nel codice, è possibile aggiungere l'evento user_event alla sessione e specificare un predicato di event_id = 82. Pertanto, non è necessario modificare il codice perché la sp_trace_generateevent stored procedure genera l'evento Eventi user_event estesi e la classe di evento SQL Trace equivalente.