如果要使用扩展事件收集与 SQL 跟踪事件类和列等效的事件数据,了解 SQL 跟踪事件如何映射到扩展事件的事件和操作会非常有帮助。
可以使用以下过程来查看与每个 SQL 跟踪事件及其关联列相对应的扩展事件和操作。
使用查询编辑器查看等效于 SQL 跟踪事件的扩展事件
在 SQL Server Management Studio 中的查询编辑器中,运行以下查询:
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
查看结果时,请注意以下事项:
如果除事件类列之外的所有列都返回 NULL,则表示事件类未从 SQL 跟踪迁移。
如果仅扩展事件作列中的值为 NULL,则表示以下任一条件为 true:
SQL 跟踪列映射到与扩展事件事件关联的数据字段之一。
注释
每个扩展事件事件都有一组默认的数据字段,这些字段自动包含在结果集中。
操作列没有找到有意义的扩展事件等效项。 下面是 SQL 跟踪中的 EventClass 列的示例。 扩展事件中不需要此列,因为事件名称具有相同的目的。
对于用户可配置的 SQL 跟踪事件类(UserConfigurable:1 到 UserConfigurable:9),扩展事件使用单个事件来替换这些事件。 事件命名为user_event。 使用 sp_trace_generateevent引发此事件,该事件与 SQL 跟踪使用的存储过程相同。 无论将哪个事件 ID 传递到存储过程,都会返回user_event事件。 但是,event_id字段作为事件数据的一部分返回。 这样,便可以生成基于事件 ID 的谓词。 例如,如果在代码中使用 UserConfigurable:0 (事件 ID = 82),则可以将user_event事件添加到会话,并指定“event_id = 82”的谓词。 因此,无需更改代码,因为sp_trace_generateevent存储过程生成扩展事件user_event事件,以及等效的 SQL 跟踪事件类。
如果除事件类列之外的所有列都返回 NULL,则表示事件类未从 SQL 跟踪迁移。
如果仅扩展事件作列中的值为 NULL,则表示以下任一条件为 true:
SQL 跟踪列映射到与扩展事件事件关联的数据字段之一。
注释
每个扩展事件事件都有一组默认的数据字段,这些字段自动包含在结果集中。
操作列没有对应的有意义的扩展事件。 下面是 SQL 跟踪中的 EventClass 列的示例。 扩展事件中不需要此列,因为事件名称具有相同的目的。
对于用户可配置的 SQL 跟踪事件类(UserConfigurable:1 到 UserConfigurable:9),扩展事件使用单个事件来替换这些事件。 事件命名为user_event。 使用 sp_trace_generateevent引发此事件,该事件与 SQL 跟踪使用的存储过程相同。 无论将哪个事件 ID 传递到存储过程,都会返回user_event事件。 但是,event_id字段作为事件数据的一部分返回。 这样,便可以生成基于事件 ID 的谓词。 例如,如果在代码中使用 UserConfigurable:0 (事件 ID = 82),则可以将user_event事件添加到会话,并指定“event_id = 82”的谓词。 因此,无需更改代码,因为sp_trace_generateevent存储过程生成扩展事件user_event事件,以及等效的 SQL 跟踪事件类。