Visualizzare gli eventi estesi equivalenti alle classi di eventi di Traccia SQLView the Extended Events Equivalents to SQL Trace Event Classes

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2014)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2014)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Se si desidera utilizzare gli eventi estesi per raccogliere dati degli eventi equivalenti a colonne e classi di evento di Traccia SQL, è utile comprendere in che modo viene eseguito il mapping degli eventi di Traccia SQL a eventi e azioni degli eventi estesi.If you want to use Extended Events to collect event data that is equivalent to SQL Trace event classes and columns, it is useful to understand how the SQL Trace events map to Extended Events events and actions.

È 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.You can use the following procedure to view the Extended Events events and actions that are equivalent to each SQL Trace event and its associated columns.

Per visualizzare gli eventi estesi equivalenti agli eventi di Traccia SQL tramite l'editor di queryTo view the Extended Events equivalents to SQL Trace events using Query Editor

  • Dall'editor di query in SQL Server Management StudioSQL Server Management Studioeseguire la query seguente:From Query Editor in SQL Server Management StudioSQL Server Management Studio, run the following query:

    USE MASTER;  
    GO  
    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 te LEFT OUTER JOIN sys.trace_xe_event_map em  
       ON te.trace_event_id = em.trace_event_id) LEFT OUTER JOIN sys.trace_event_bindings tb  
       ON em.trace_event_id = tb.trace_event_id LEFT OUTER JOIN sys.trace_columns tc  
       ON tb.trace_column_id = tc.trace_column_id LEFT OUTER JOIN sys.trace_xe_action_map am  
       ON tc.trace_column_id = am.trace_column_id  
    ORDER BY te.name, tc.name  
    

    Quando si visualizzano i risultati, notare quanto segue:When you view the results, note the following:

  • Se tutte le colonne restituiscono NULL, ad eccezione della colonna Event Class, significa che non è stata eseguita la migrazione della classe di evento da Traccia SQL.If all columns return NULL except for the Event Class column, this indicates that the event class was not migrated from SQL Trace.

  • Se solo il valore nella colonna azione Extended Events è NULL, significa che una delle condizioni seguenti è vera:If only the value in the Extended Events action column is NULL, this indicates that either of the following conditions is true:

    • Per la colonna di Traccia SQL viene eseguito il mapping a uno dei campi dati associati con l'evento degli eventi estesi.The SQL Trace column maps to one of the data fields that is associated with the Extended Events event.

      Nota

      Ogni evento degli eventi estesi dispone di un set predefinito di campi dati che vengono inclusi automaticamente nel set di risultati.Each Extended Events event has a default set of data fields that are automatically included in the result set.

    • La colonna relativa all'azione non dispone di un equivalente significativo degli eventi estesi.The action column does not have a meaningful Extended Events equivalent. Ne è un esempio la colonna EventClass in Traccia SQL.An example of this is the EventClass column in SQL Trace. Questo colonna non è necessaria negli eventi estesi in quanto il nome dell'evento svolge lo stesso ruolo.This column is not needed in Extended Events because the event name serves the same purpose.

  • Per le classi di eventi di Traccia SQL configurabili dall'utente (da UserConfigurable:1 a UserConfigurable:9), la funzionalità Eventi estesi usa un singolo evento in sostituzione di tali classi.For user configurable SQL Trace event classes (UserConfigurable:1 through UserConfigurable:9), Extended Events uses a single event to replace these. Il nome dell'evento è user_event.The event is named user_event. Questo evento viene generato usando sp_trace_generateevent, che è la stessa stored procedure usata da Traccia SQL.This event is raised by using sp_trace_generateevent, which is the same stored procedure that is used by SQL Trace. L'evento user_event viene restituito indipendentemente dall'ID evento passato alla stored procedure.The user_event event is returned regardless of which event ID is passed to the stored procedure. Viene tuttavia restituito un campo event_id come parte dei dati dell'evento.However, an event_id field is returned as part of the event data. In questo modo, è possibile compilare un predicato basato sull'ID evento.This enables you to build a predicate that is based on the event ID. Se, ad esempio, si usa UserConfigurable:0 (event ID = 82) nel codice, è possibile aggiungere l'evento user_event alla sessione e specificare un predicato di 'event_id = 82'.For example, if you use UserConfigurable:0 (event ID = 82) in the code, you can add the user_event event to the session, and specify a predicate of 'event_id = 82'. Non è quindi necessario modificare il codice perché la stored procedure sp_trace_generateevent genera l'evento user_event degli eventi estesi e la classe di evento di Traccia SQL equivalente.Therefore, you do not have to change the code because the sp_trace_generateevent stored procedure generates the Extended Events user_event event, and the equivalent SQL Trace event class.

  • Se tutte le colonne restituiscono NULL, ad eccezione della colonna Event Class, significa che non è stata eseguita la migrazione della classe di evento da Traccia SQL.If all columns return NULL except for the Event Class column, this indicates that the event class was not migrated from SQL Trace.

  • Se solo il valore nella colonna azione Extended Events è NULL, significa che una delle condizioni seguenti è vera:If only the value in the Extended Events action column is NULL, this indicates that either of the following conditions is true:

    • Per la colonna di Traccia SQL viene eseguito il mapping a uno dei campi dati associati con l'evento degli eventi estesi.The SQL Trace column maps to one of the data fields that is associated with the Extended Events event.

      Nota

      Ogni evento degli eventi estesi dispone di un set predefinito di campi dati che vengono inclusi automaticamente nel set di risultati.Each Extended Events event has a default set of data fields that are automatically included in the result set.

    • La colonna relativa all'azione non dispone di un equivalente significativo degli eventi estesi.The action column does not have a meaningful Extended Events equivalent. Ne è un esempio la colonna EventClass in Traccia SQL.An example of this is the EventClass column in SQL Trace. Questo colonna non è necessaria negli eventi estesi in quanto il nome dell'evento svolge lo stesso ruolo.This column is not needed in Extended Events because the event name serves the same purpose.

  • Per le classi di eventi di Traccia SQL configurabili dall'utente (da UserConfigurable:1 a UserConfigurable:9), la funzionalità Eventi estesi usa un singolo evento in sostituzione di tali classi.For user configurable SQL Trace event classes (UserConfigurable:1 through UserConfigurable:9), Extended Events uses a single event to replace these. Il nome dell'evento è user_event.The event is named user_event. Questo evento viene generato usando sp_trace_generateevent, che è la stessa stored procedure usata da Traccia SQL.This event is raised by using sp_trace_generateevent, which is the same stored procedure that is used by SQL Trace. L'evento user_event viene restituito indipendentemente dall'ID evento passato alla stored procedure.The user_event event is returned regardless of which event ID is passed to the stored procedure. Viene tuttavia restituito un campo event_id come parte dei dati dell'evento.However, an event_id field is returned as part of the event data. In questo modo, è possibile compilare un predicato basato sull'ID evento.This enables you to build a predicate that is based on the event ID. Se, ad esempio, si usa UserConfigurable:0 (event ID = 82) nel codice, è possibile aggiungere l'evento user_event alla sessione e specificare un predicato di 'event_id = 82'.For example, if you use UserConfigurable:0 (event ID = 82) in the code, you can add the user_event event to the session, and specify a predicate of 'event_id = 82'. Non è quindi necessario modificare il codice perché la stored procedure sp_trace_generateevent genera l'evento user_event degli eventi estesi e la classe di evento di Traccia SQL equivalente.Therefore, you do not have to change the code because the sp_trace_generateevent stored procedure generates the Extended Events user_event event, and the equivalent SQL Trace event class.

Vedere ancheSee Also

sp_trace_generateevent (Transact-SQL)sp_trace_generateevent (Transact-SQL)