Общие сведения о расширенных событияхExtended events overview

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL DatabaseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database

SQL ServerSQL Server Благодаря архитектуре расширенных событий пользователи могут собирать необходимый объем данных для устранения неполадок или проблем с производительностью.The Extended Events architecture enables users to collect as much or as little data as is necessary to troubleshoot or identify a performance problem. Подсистема расширенных событий допускает настройку и масштабирование в широком диапазоне.Extended Events is configurable, and it scales very well.

Дополнительные сведения о расширенных событиях см. в разделе Краткое руководство. Расширенные события в SQL Server.You can find more information about Extended Events at Quickstart: Extended events in SQL Server.

Преимущества системы расширенных событий SQL ServerSQL ServerBenefits of SQL ServerSQL Server Extended Events

Расширенные события — это упрощенная система мониторинга производительности, в которой применяется минимальный объем ресурсов.Extended Events is a lightweight performance monitoring system that uses minimal performance resources. Система расширенных событий имеет два графических пользовательских интерфейса, которые позволяют создавать, изменять, выводить и анализировать данные сеанса.Extended Events provides two graphical user interfaces to create, modify, display, and analyze your session data. Эти интерфейсы имеют следующие имена:These interfaces are named:

  • Мастер создания нового сеансаNew Session Wizard
  • Создание сеансаNew Session

Общие сведения о расширенных событияхExtended Events Concepts

SQL ServerSQL Server Подсистема расширенных событий основана на таких основных понятиях, как событие и объект-получатель событий, а также использует понятия трассировки событий Windows (ETW) и вводит несколько новых понятий.Extended Events builds on existing concepts, such as an event or an event consumer, uses concepts from Event Tracing for Windows, and introduces new concepts.

В следующей таблице даны определения понятий, применяемых в расширенной подсистеме событий.The following table describes the concepts in Extended Events.

РазделTopic ОписаниеDescription
Пакеты обработки расширенных событий SQL ServerSQL Server Extended Events Packages Описывает пакеты расширенных событий, которые содержат объекты.Describes the Extended Events packages that contain objects. Эти объекты используются для получения и обработки данных во время сеанса расширенных событий.These objects are used to obtain and process data when an Extended Events session is running.
Цели расширенных событий SQL ServerSQL Server Extended Events Targets Описывает объекты-получатели событий, получающие данные во время сеанса событий.Describes the event consumers that can receive data during an event session.
Подсистема расширенных событий SQL ServerSQL Server Extended Events Engine Описывает подсистему, которая реализует сеанс расширенных событий, а также управляет им.Describes the engine that implements and manages an Extended Events session.
Сеансы расширенных событий SQL ServerSQL Server Extended Events Sessions Описывает сеанс расширенных событий.Describes the Extended Events session.
   

Архитектура расширенной подсистемы событийExtended Events Architecture

Расширенные события представляют собой нашу общую систему обработки событий для серверных систем.Extended Events is our name for a general event-handling system for server systems. Инфраструктура расширенных событий поддерживает корреляцию данных из SQL ServerSQL Server, а при определенных условиях — корреляцию данных из операционной системы и приложений баз данных.The Extended Events infrastructure supports the correlation of data from SQL ServerSQL Server, and under certain conditions, the correlation of data from the operating system and database applications. В случае с операционной системой выходные данные расширенных событий могут направляться в службу трассировки событий Windows (ETW).In the operating system case, Extended Events output must be directed to Event Tracing for Windows (ETW). Служба ETW может обеспечивать сопоставление данных событий с данными событий операционной системы или приложений.ETW can correlate the event data with operating system or application event data.

Все приложения имеют точки выполнения, которые с успехом используются как внутри приложения, так и вне его.All applications have execution points that are useful both inside and outside an application. Внутри приложения можно поставить асинхронную обработку в очередь, используя сведения, собранные во время начального выполнения задачи.Inside the application, asynchronous processing may be enqueued using information that is collected during the initial execution of a task. Вне приложения средства мониторинга получают данные из точек выполнения.Outside the application, execution points provide monitoring utilities with information. Это информация о характеристиках поведения и производительности отслеживаемого приложения.The information is about the behavioral and performance characteristics of the monitored application.

Расширенные события поддерживают использование данных событий вне процесса.Extended Events supports using event data outside a process. Эти данные используются, как правило, следующими средствами.This data is typically used by:

  • Средствами трассировки, например приложением SQL Trace и системным монитором.Tracing tools, such as SQL Trace and System Monitor.

  • Инструментами ведения журналов, например журналом событий Windows или журналом ошибок SQL ServerSQL Server .Logging tools, such as the Windows event log or the SQL ServerSQL Server error log.

  • Пользователями, выполняющими администрирование продукта или разрабатывающими приложения для него.Users administering a product or developing applications on a product.

Ключевые аспекты расширенных событий:Extended Events has the following key design aspects:

  • Подсистема расширенных событий не зависит от событий.The Extended Events engine is event agnostic. Подсистема может привязать любое событие к любой цели, так как не ограничена содержимым события.The engine can bind any event to any target, because the engine is not constrained by event content. Дополнительные сведения о подсистеме расширенных событий см. в разделе SQL Server Extended Events Engine.For more information about the Extended Events engine, see SQL Server Extended Events Engine.

  • События отделены от объектов-получателей событий, называемых в расширенных событиях целями .Events are separated from event consumers, which are called targets in Extended Events. Это означает, что любая цель может получать любые события.This means that any target can receive any event. Кроме того, любое возникающее событие может автоматически потребляться целью, которая регистрирует его и предоставляет дополнительный контекст событий.In addition, any event that is raised can be automatically consumed by the target, which can log or provide additional event context. Дополнительные сведения см. в статье SQL Server Extended Events Targets.For more information, see SQL Server Extended Events Targets.

  • События отделены от действий, предпринимаемых при возникновении события.Events are distinct from the action to take when an event occurs. Следовательно, любое действие можно связать с любым событием.Therefore, any action can be associated with any event.

  • Предикаты могут применять динамические фильтры, когда необходимо получить данные события.Predicates can dynamically filter when event data should be captured. Динамическая фильтрация делает инфраструктуру расширенных событий более гибкой.Dynamic filtering adds to the flexibility of the Extended Events infrastructure. Дополнительные сведения см. в разделе SQL Server Extended Events Packages.For more information, see SQL Server Extended Events Packages.

Расширенные события могут синхронно создавать данные событий (и асинхронно обрабатывать эти данные), чем обеспечивается гибкое решение для обработки событий.Extended Events can synchronously generate event data (and asynchronously process that data) which provides a flexible solution for event handling. Кроме того, расширенные события предоставляют следующие возможности.In addition, Extended Events provides the following features:

  • Унифицированный подход к обработке событий во всей серверной системе, одновременно разрешающий пользователям изолировать отдельные события для устранения неполадок.A unified approach to handling events across the server system, while enabling users to isolate specific events for troubleshooting purposes.

  • Интеграция и поддержка существующих инструментов приложения трассировки событий Windows.Integration with, and support for existing ETW tools.

  • Полностью настраиваемый механизм обработки событий на основе языка Transact-SQLTransact-SQL.A fully configurable event handling mechanism that is based on Transact-SQLTransact-SQL.

  • Возможность динамического мониторинга активных процессов с минимальным влиянием на эти процессы.The ability to dynamically monitor active processes, while having minimal effect on those processes.

  • Сеанс работоспособности системы по умолчанию, который выполняется без каких-либо заметных последствий для производительности.A default system health session that runs without any noticeable performance effects. В этом сеансе собираются системные данные, которые можно использовать для решения проблем производительности.The session collects system data that you can use to help troubleshoot performance issues. Дополнительные сведения см. в статье Использование сеанса system_health.For more information, see Use the system_health Session.

Задачи расширенной подсистемы событийExtended Events Tasks

Использование среды Среда Management StudioManagement Studio или языка Transact-SQLTransact-SQL для выполнения инструкций Transact-SQLTransact-SQL языка описания данных DDL, динамических административных представлений и функций или представлений каталога дает возможность создавать простые и комплексные решения по диагностике расширенных событий SQL ServerSQL Server в среде SQL ServerSQL Server .Using Среда Management StudioManagement Studio or Transact-SQLTransact-SQL to execute Transact-SQLTransact-SQL Data Definition Language (DDL) statements, dynamic management views and functions, or catalog views, you can create simple or complex SQL ServerSQL Server Extended Events troubleshooting solutions for your SQL ServerSQL Server environment.

Описание задачиTask Description РазделTopic
Обозреватель объектов позволяет управлять сеансами события.Use the Object Explorer to manage event sessions. Управление сеансами событий в обозревателе объектовManage Event Sessions in the Object Explorer
Описано, как создать сеанс расширенных событий.Describes how to create an Extended Events session. Создание сеанса расширенных событийCreate an Extended Events Session
Описывает, как просматривать и обновлять целевые данные.Describes how to view and refresh target data. Расширенный просмотр целевых данных из расширенных событий в SQL ServerAdvanced Viewing of Target Data from Extended Events in SQL Server
Описывает использование средств расширенной подсистемы событий для создания сеансов и управления сеансами расширенных событий SQL ServerSQL Server .Describes how to use Extended Events tools to create and manage your SQL ServerSQL Server Extended Events sessions. Средства расширенных событийExtended Events Tools
Описано, как изменить сеанс расширенных событий.Describes how to alter an Extended Events session. Изменение сеанса расширенных событийAlter an Extended Events Session
Описывает, как получить информацию о полях, связанных с событиями.Describes how to get information about the fields associated with the events. Получение полей для всех событийGet the Fields for All Events
Описывает, как узнать, какие события доступны в зарегистрированных пакетах.Describes how to find out what events are available in the registered packages. Просмотр событий для зарегистрированных пакетовView the Events for Registered Packages
Описывает, как определить, какие цели расширенных событий доступны в зарегистрированных пакетах.Describes how to determine what Extended Events targets are available in the registered packages. Просмотр целей расширенных событий для зарегистрированных пакетовView the Extended Events Targets for Registered Packages
Описывает, как с помощью приведенной ниже процедуры можно просматривать события и действия расширенных событий, аналогичных каждому событию трассировки SQL со связанными столбцами.Describes how to view the Extended Events events and actions that are equivalent to each SQL Trace event and its associated columns. Просмотр эквивалентов расширенных событий для классов событий трассировки SQLView the Extended Events Equivalents to SQL Trace Event Classes
Описывает, как выяснить, какие параметры можно задать при использовании аргумента ADD TARGET в инструкции CREATE EVENT SESSION или ALTER EVENT SESSION.Describes how to find the parameters you can set when you use the ADD TARGET argument in CREATE EVENT SESSION or ALTER EVENT SESSION. Получение настраиваемых параметров для аргумента ADD TARGETGet the Configurable Parameters for the ADD TARGET Argument
Описано, как преобразовать существующий скрипт приложения трассировки SQL в сеанс расширенных событий.Describes how to convert an existing SQL Trace script to an Extended Events session. Преобразование существующего скрипта трассировки SQL в сеанс расширенных событийConvert an Existing SQL Trace Script to an Extended Events Session
Описывает, как определить, какие запросы удерживают данную блокировку и каковы план запроса и стек Transact-SQLTransact-SQL во время получения блокировки.Describes how to determine which queries are holding the lock, the plan of the query, and the Transact-SQLTransact-SQL stack at the time the lock was taken. Определение запросов, содержащих блокировкиDetermine Which Queries Are Holding Locks
Описывает, как определить источник блокировок, приводящих к ухудшению производительности базы данных.Describes how to identify the source of locks that are hindering database performance. Поиск объектов, на которые наложено наибольшее число блокировокFind the Objects That Have the Most Locks Taken on Them
Описывает, как использовать расширенные события совместно со средством трассировки событий для Windows (ETW) для наблюдения за активностью системы.Describes how to use Extended Events with Event Tracing for Windows to monitor system activity. Мониторинг активности системы с помощью расширенных событийMonitor System Activity Using Extended Events
Использование представлений каталога и динамических административных представлений для расширенных событийUsing the Catalog views and the Dynamic management views (DMVs) for extended events Использование SELECT и JOIN в системных представлениях для расширенных событий в SQL ServerSELECTs and JOINs From System Views for Extended Events in SQL Server
   

Выполните следующий запрос Transact-SQL (T-SQL), чтобы вывести список всех возможных расширенных событий с их описанием:Use the following Transact-SQL (T-SQL) query to list out all possible extended events and their descriptions:

SELECT
     obj1.name as [XEvent-name],
     col2.name as [XEvent-column],
     obj1.description as [Descr-name],
     col2.description as [Descr-column]
  FROM
               sys.dm_xe_objects        as obj1
      JOIN sys.dm_xe_object_columns as col2 on col2.object_name = obj1.name
  ORDER BY
    obj1.name,
    col2.name

Примеры кода для базы данных SQL Azure могут отличатьсяCode examples can differ for Azure SQL Database

В некоторые примеры кода Transact-SQL, написанные для локального сервера SQL Server, необходимо внести небольшие изменения, чтобы они выполнялись в службе "База данных SQL Azure" в облаке.Some Transact-SQL code examples written for SQL Server on-premises need small changes to run on Azure SQL Database service in the cloud. Одна категория таких примеров кода включает системные представления, чьи префиксы имен немного различаются в двух системах баз данных:One category of such code examples involves system views whose name prefixes differ slightly between the two database systems:

  • сервер_   -   префикс для локальной средыserver_   -   prefix for on-premises
  • база данных_   -   префикс для базы данных SQL Azuredatabase_   -   prefix for Azure SQL Database

Для иллюстрации в приведенной ниже таблице перечислены и сравниваются два подмножества системных представлений.For illustration, the following table lists and compares two subsets of the system views. Для краткости подмножества ограничены именами представлений, которые также содержат строку _event.For brevity, the subsets are restricted to view names that also contain the string _event. Подмножества имеют разные префиксы имен, так как они относятся к двум разным системам баз данных.The subsets have differing name prefixes because they come from two different database systems.

Имя в локальной системе версии 2017Name from on-premises 2017 Имя в облачной службеName from cloud service
server_event_notificationsserver_event_notifications
server_event_session_actionsserver_event_session_actions
server_event_session_eventsserver_event_session_events
server_event_session_fieldsserver_event_session_fields
server_event_session_targetsserver_event_session_targets
server_event_sessionsserver_event_sessions
server_eventsserver_events
server_trigger_eventsserver_trigger_events
database_event_session_actionsdatabase_event_session_actions
database_event_session_eventsdatabase_event_session_events
database_event_session_fieldsdatabase_event_session_fields
database_event_session_targetsdatabase_event_session_targets
database_event_sessionsdatabase_event_sessions
   

Списки в таблице выше актуальны на июнь 2019 г.The two lists in the preceding table are accurate as of June 2019. Однако содержимое таблицы может устареть, так как оно не обновляется.But the table contents here may become outdated, because they will not be maintained here. Чтобы получить точные списки, выполните приведенную ниже инструкцию T-SQL SELECT.For accurate lists, run the following T-SQL SELECT statement. Выполните инструкцию SELECT два раза: по одному разу для каждой системы баз данных.Run the SELECT twice, once on each database system.

SELECT name
    FROM sys.all_objects
    WHERE
        (name LIKE 'database\_%' { ESCAPE '\' } OR
         name LIKE 'server\_%' { ESCAPE '\' })
        AND name LIKE '%\_event%' { ESCAPE '\' }
        AND type = 'V'
    ORDER BY name;

См. также:See Also

Приложения уровня данныхData-tier Applications
Поддержка приложений уровня данных для объектов и версий SQL ServerDAC Support For SQL Server Objects and Versions
Развертывание приложения уровня данныхDeploy a Data-tier Application
Наблюдение за приложениями уровня данныхMonitor Data-tier Applications
 
Динамические административные представления расширенных событийExtended Events Dynamic Management Views
Представления каталога расширенных событий (Transact-SQL)Extended Events Catalog Views (Transact-SQL)
 
XELite: кроссплатформенная библиотека для чтения событий XEvent из XEL-файлов или обновляющихся потоков SQL, выпущена в мае 2019 г.XELite: Cross-platform library to read XEvents from XEL files or live SQL streams, released May 2019.
Командлет Read-SQLXEvent PowerShell, выпущен в июне 2019 г.Read-SQLXEvent PowerShell cmdlet, released June 2019.
Скрытые возможности SQL. Сравнение отслеживания причинных связей и последовательностей событий для сеансов XEvent (запись блога опубликована 1 апреля 2019 г.)SQL Mysteries: Causality tracking vs Event Sequence for XEvent Sessions (blog published April 1, 2019)