Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
Azure SQL База данных
Azure SQL Управляемый экземпляр
SQL База данных в Microsoft Fabric
Узнайте, как события трассировки SQL сопоставляют с событиями и действиями расширенных событий. Вы можете собирать данные о событиях, эквивалентные классам событий и столбцам трассировки SQL.
С помощью приведенной ниже процедуры можно просматривать события и действия расширенных событий, аналогичных каждому событию трассировки SQL со связанными столбцами.
Чтобы выполнить команды T-SQL, используйте SQL Server Management Studio (SSMS), расширение MSSQL для Visual Studio Code, sqlcmd или любимое средство запросов T-SQL.
Просмотр эквивалентов расширенных событий событиям трассировки SQL с помощью редактора запросов
В редакторе запросов в SQL Server Management Studio выполните следующий запрос:
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;
Примечание.
Если все столбцы возвращаются
NULL, кроме столбцаEvent Class, класс событий не был мигрирован из трассировки SQL.Если только значение в столбце
Extended Events actionравноNULL, выполняется одно из следующих условий:Элемент
SQL Trace columnсопоставляется с одним из полей данных, которое связано с событием Extended Events.Каждое событие расширенных событий имеет набор полей данных по умолчанию, автоматически включаемых в результирующий набор.
Столбец
actionне имеет значимого эквивалента расширенных событий. Примером является столбецEventClassв SQL Trace. Этот столбец не нужен в расширенных событиях, поскольку достаточно имени события.
Расширенные события используют одно событие для замены пользовательских настраиваемых классов событий трассировки SQL (
UserConfigurable:1черезUserConfigurable:9). Событие называетсяuser_event. Это событие вызывается с помощьюsp_trace_generateevent, той же хранимой процедуры, которая используется SQL Trace. Событиеuser_eventвозвращается независимо от того, какой идентификатор события передается хранимой процедуре.event_idОднако поле возвращается в составе данных события, которые можно использовать для создания предиката на основе идентификатора события. Например, если вы используетеUserConfigurable:0(идентификатор события = 82) в коде, вы можете добавить событиеuser_eventв сеанс и указать предикатevent_id = 82. Поэтому вам не нужно изменять код, так какsp_trace_generateeventхранимая процедура создает событие расширенных событийuser_eventи эквивалентный класс событий трассировки SQL.