SQL トレースのイベント クラスと等価な拡張イベントを確認するView the Extended Events Equivalents to SQL Trace Event Classes

拡張イベントを使用して、SQL トレース イベントのクラスや列に相当するイベント データを収集する場合、SQL トレース イベントが、拡張イベントのイベントおよびアクションとどのように対応しているかを理解しておくことが大切です。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.

SQL トレースのイベントとそれに関連した列について、拡張イベントにおける等価なイベントとアクションを確認するには、次の手順に従います。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.

クエリ エディターを使用して SQL トレース イベントと等価な拡張イベントを確認するにはTo view the Extended Events equivalents to SQL Trace events using Query Editor

  • SQL Server Management StudioSQL Server Management Studioのクエリ エディターから、次のクエリを実行します。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  
    

結果を確認する際は、次の点に注意してください。When you view the results, note the following:

  • イベント クラス列を除くすべての列で NULL が返された場合、そのイベント クラスは SQL トレースから移行されなかったことを意味します。If all columns return NULL except for the Event Class column, this indicates that the event class was not migrated from SQL Trace.

  • 拡張イベント アクション列の値のみが NULL である場合、次のいずれかの条件に該当します。If only the value in the Extended Events action column is NULL, this indicates that either of the following conditions is true:

    • SQL トレース列は、拡張イベントのイベントに関連付けられているいずれかのデータ フィールドに対応する。The SQL Trace column maps to one of the data fields that is associated with the Extended Events event.

      注意

      拡張イベントの各イベントは、結果セットに自動的に追加される既定のデータ フィールドのセットを持っています。Each Extended Events event has a default set of data fields that are automatically included in the result set.

    • アクション列には、意味のある等価な拡張イベントが存在しない。The action column does not have a meaningful Extended Events equivalent. たとえば、SQL トレースの EventClass 列がこれに該当します。An example of this is the EventClass column in SQL Trace. 同じ目的はイベント名によって満たされるため、拡張イベントにこの列は必要ありません。This column is not needed in Extended Events because the event name serves the same purpose.

  • ユーザーが構成できる SQL トレースのイベント クラス (UserConfigurable:1 ~ UserConfigurable:9) は、拡張イベントでは単一のイベントに置き換えられます。For user configurable SQL Trace event classes (UserConfigurable:1 through UserConfigurable:9), Extended Events uses a single event to replace these. このイベントには、user_event という名前が付けられます。The event is named user_event. このイベントは、SQL トレースと同じ sp_trace_generateevent ストアド プロシージャを使用して生成されます。This event is raised by using sp_trace_generateevent, which is the same stored procedure that is used by SQL Trace. user_event イベントは、ストアド プロシージャに渡されたイベント ID に関係なく返されます。The user_event event is returned regardless of which event ID is passed to the stored procedure. ただし、event_id フィールドは、イベント データの一部として返されます。However, an event_id field is returned as part of the event data. これによって、イベント ID に基づく述語の作成が可能となります。This enables you to build a predicate that is based on the event ID. たとえば、UserConfigurable:0 (イベント ID = 82) をコード内で使用する場合、user_event イベントをセッションに追加し、'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'. 拡張イベントの user_event イベントも SQL トレースにおける等価なイベント クラスも sp_trace_generateevent ストアド プロシージャによって生成されるため、コードを変更する必要はありません。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.

  • イベント クラス列を除くすべての列で NULL が返された場合、そのイベント クラスは SQL トレースから移行されなかったことを意味します。If all columns return NULL except for the Event Class column, this indicates that the event class was not migrated from SQL Trace.

  • 拡張イベント アクション列の値のみが NULL である場合、次のいずれかの条件に該当します。If only the value in the Extended Events action column is NULL, this indicates that either of the following conditions is true:

    • SQL トレース列は、拡張イベントのイベントに関連付けられているいずれかのデータ フィールドに対応する。The SQL Trace column maps to one of the data fields that is associated with the Extended Events event.

      注意

      拡張イベントの各イベントは、結果セットに自動的に追加される既定のデータ フィールドのセットを持っています。Each Extended Events event has a default set of data fields that are automatically included in the result set.

    • アクション列には、意味のある等価な拡張イベントが存在しない。The action column does not have a meaningful Extended Events equivalent. たとえば、SQL トレースの EventClass 列がこれに該当します。An example of this is the EventClass column in SQL Trace. 同じ目的はイベント名によって満たされるため、拡張イベントにこの列は必要ありません。This column is not needed in Extended Events because the event name serves the same purpose.

  • ユーザーが構成できる SQL トレースのイベント クラス (UserConfigurable:1 ~ UserConfigurable:9) は、拡張イベントでは単一のイベントに置き換えられます。For user configurable SQL Trace event classes (UserConfigurable:1 through UserConfigurable:9), Extended Events uses a single event to replace these. このイベントには、user_event という名前が付けられます。The event is named user_event. このイベントは、SQL トレースと同じ sp_trace_generateevent ストアド プロシージャを使用して生成されます。This event is raised by using sp_trace_generateevent, which is the same stored procedure that is used by SQL Trace. user_event イベントは、ストアド プロシージャに渡されたイベント ID に関係なく返されます。The user_event event is returned regardless of which event ID is passed to the stored procedure. ただし、event_id フィールドは、イベント データの一部として返されます。However, an event_id field is returned as part of the event data. これによって、イベント ID に基づく述語の作成が可能となります。This enables you to build a predicate that is based on the event ID. たとえば、UserConfigurable:0 (イベント ID = 82) をコード内で使用する場合、user_event イベントをセッションに追加し、'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'. 拡張イベントの user_event イベントも SQL トレースにおける等価なイベント クラスも sp_trace_generateevent ストアド プロシージャによって生成されるため、コードを変更する必要はありません。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.

関連項目See Also

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