Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
База данных SQL в предварительной версии Microsoft Fabric
Архитектура расширенных событий (XEvents) позволяет пользователям собирать столько или меньше данных, сколько необходимо для мониторинга, идентификации или устранения неполадок производительности в SQL Server, Базе данных SQL Azure, Управляемом экземпляре SQL Azure и базе данных SQL в Fabric. Расширенные события хорошо настраиваемы, облегченные и масштабируемые. Дополнительные сведения см. в разделе "Архитектура расширенных событий".
Расширенные события заменяют устаревшие функции трассировки SQL и SQL Server Profiler.
Чтобы приступить к работе с расширенными событиями, используйте краткое руководство. Расширенные события.
Примечание.
Для базы данных SQL Azure, базы данных SQL в Fabric и Управляемом экземпляре SQL примеры кода могут отличаться , так как файлы для целевого event_file объекта хранятся в службе хранилища Azure. Дополнительные сведения см. в статье "Расширенные события" в SQL Azure.
Преимущества системы расширенных событий
Расширенные события — это упрощенная система мониторинга производительности, которая использует минимальные системные ресурсы, предоставляя подробное представление ядра СУБД. SQL Server Management Studio предоставляет графический пользовательский интерфейс для расширенных событий для создания, изменения и удаления сеансов событий, а также для отображения и анализа данных сеанса. Дополнительные сведения о поддержке расширенных событий в Management Studio см. в следующей статье:
Основные понятия расширенных событий
Расширенные события создаются на основе существующих концепций трассировки событий для Windows (ETW), таких как событие и потребитель событий, и вводятся новые понятия, такие как действие и предикат.
В следующей таблице приведены ссылки на документацию по основным понятиям в расширенных событиях.
| Статья | Описание |
|---|---|
| Пакеты расширенных событий | Описывает пакеты расширенных событий, которые содержат объекты. Эти объекты используются для получения и обработки данных во время сеанса расширенных событий. |
| Целевые объекты расширенных событий | Описывает объекты-получатели событий, получающие данные во время сеанса событий. |
| Подсистема расширенных событий | Описывает подсистему, которая реализует сеанс расширенных событий, а также управляет им. |
| Сеансы расширенных событий | Описывает сеанс расширенных событий. |
Архитектура расширенных событий
Расширенные события — это имя общей системы обработки событий для серверных систем. Инфраструктура расширенных событий поддерживает корреляцию данных из ядра СУБД и в определенных условиях корреляцию данных из операционных систем и приложений баз данных. В случае с операционной системой выходные данные расширенных событий могут направляться в службу трассировки событий Windows (ETW). Служба ETW может обеспечивать сопоставление данных событий с данными событий операционной системы или приложений.
Все приложения имеют точки выполнения, которые с успехом используются как внутри приложения, так и вне его. В приложении асинхронная обработка может быть закручено с помощью сведений, собранных во время первоначального выполнения задачи. Вне приложения средства мониторинга получают данные из точек выполнения. Это информация о характеристиках поведения и производительности отслеживаемого приложения.
Расширенные события поддерживают использование данных событий вне процесса. Эти данные обычно используются пользователями для администрирования или поддержки продукта путем отслеживания производительности или пользовательской разработки приложений в продукте в целях отладки. Данные используются или анализируются с помощью таких средств, как SQL Server Management Studio, XEvent Profiler и Монитор производительности, а также средства командной строки T-SQL или Windows.
Ключевые аспекты расширенных событий:
- Подсистема расширенных событий не зависит от событий. Подсистема может привязать любое событие к любому целевому объекту, так как подсистема не ограничена содержимым события. Дополнительные сведения о подсистеме расширенных событий см . в подсистеме расширенных событий.
- События отделены от объектов-получателей событий, называемых в расширенных событиях целями . Это означает, что любая цель может получать любые события. Кроме того, любое возникающее событие может автоматически потребляться целью, которая регистрирует его и предоставляет дополнительный контекст событий. Дополнительные сведения см. в разделе "Целевые объекты расширенных событий".
- События отделены от действий, предпринимаемых при возникновении события. Следовательно, любое действие можно связать с любым событием.
- Предикаты могут применять динамические фильтры, когда необходимо получить данные события. Динамическая фильтрация делает инфраструктуру расширенных событий более гибкой. Дополнительные сведения см. в разделе "Расширенные события".
Расширенные события могут синхронно создавать данные событий (и асинхронно обрабатывать эти данные), что обеспечивает гибкое решение для обработки событий. Кроме того, расширенные события предоставляют следующие возможности.
- Унифицированный подход к обработке событий во всей серверной системе, одновременно разрешающий пользователям изолировать отдельные события для устранения неполадок.
- Интеграция и поддержка существующих инструментов приложения трассировки событий Windows.
- Полностью настраиваемый механизм обработки событий, использующий Transact-SQL.
- Возможность динамического мониторинга активных процессов с минимальным влиянием на эти процессы.
- Сеанс работоспособности системы по умолчанию, который выполняется без каких-либо заметных последствий для производительности. В этом сеансе собираются системные данные, которые можно использовать для решения проблем производительности. Дополнительные сведения см. в разделе "Использование сеанса system_health".
Задачи расширенных событий
С помощью Management Studio или Transact-SQL для выполнения инструкций Языка определения данных Transact-SQL (DDL), использования динамических административных представлений и функций или представлений каталога можно создавать простые или сложные решения по устранению неполадок расширенных событий SQL Server для среды SQL Server.
| Описание задания | Статья |
|---|---|
| Обозреватель объектов позволяет управлять сеансами события. | Управление сеансами событий в обозревателе объектов |
| Описывает использование доступных целевых объектов расширенных событий. | Целевые объекты расширенных событий |
| Описывает, как просматривать и обновлять целевые данные. | Просмотр данных событий в SQL Server Management Studio |
| Описывает архитектуру сеансов расширенных событий. | Сеансы расширенных событий |
| Описывает использование средств расширенной подсистемы событий для создания сеансов и управления сеансами расширенных событий . | Средства расширенных событий |
| Описано, как изменить сеанс расширенных событий. | Изменение сеанса расширенных событий |
| Описывает, как получить информацию о полях, связанных с событиями. | Получение полей для всех событий |
| Описывает, как узнать, какие события доступны в зарегистрированных пакетах. | Операторы SELECT и JOIN из системных представлений для анализа расширенных событий |
| Описывает, как с помощью приведенной ниже процедуры можно просматривать события и действия расширенных событий, аналогичных каждому событию трассировки SQL со связанными столбцами. | Просмотр эквивалентов расширенных событий для классов событий трассировки SQL |
| Описано, как преобразовать существующий скрипт приложения трассировки SQL в сеанс расширенных событий. | Преобразование существующего скрипта трассировки SQL в сеанс расширенных событий |
| Описывает, как определить, какие запросы хранят блокировку, план запроса и стек Transact-SQL во время выполнения блокировки. | Определение запросов, содержащих блокировки |
| Описывает, как определить источник блокировок. | Поиск объектов, на которые наложено наибольшее число блокировок |
| Описывает, как использовать расширенные события совместно со средством трассировки событий для Windows (ETW) для наблюдения за активностью системы. | Мониторинг активности системы с помощью расширенных событий |
| Использование представлений каталога и динамических административных представлений для расширенных событий | Операторы SELECT и JOIN из системных представлений для расширенных событий |
Представления каталога расширенных событий
Расширенные события предоставляют несколько представлений каталога. Представления каталога сообщают о метаданных или определении сеанса событий. Смотрите сведения об экземплярах активных сеансов событий в разделе Динамические представления управления расширенными событиями.
- База данных SQL Azure и база данных SQL в Fabric
- Управляемый экземпляр Azure SQL
- SQL Server
| Имя представления каталога | Описание |
|---|---|
| sys.database_event_session_actions | Возвращает строку для каждого действия для каждого события сеанса событий с областью действия базы данных. |
| sys.database_event_session_events | Возвращает строку для каждого события в сессии событий, обращенной к области базы данных. |
| sys.database_event_session_fields | Возвращает строку для каждого настраиваемого столбца, который был явно задан для событий и целевых объектов сеанса с областью действия базы данных. |
| sys.database_event_session_targets | Возвращает строку для каждого целевого объекта события для сеанса событий с областью действия базы данных. |
| sys.database_event_sessions | Возвращает строку для каждого сеанса событий в пределах базы данных. |
Динамические административные представления расширенных событий
Расширенные события предоставляют несколько динамических административных представлений (DMV). Динамические административные представления возвращают сведения о активных (запущенных) сеансах событий, включая статистику сеансов и статистику по целям.
- База данных SQL Azure и база данных SQL в Fabric
- Управляемый экземпляр Azure SQL
- SQL Server
| Имя DMV | Описание |
|---|---|
| sys.dm_xe_database_session_event_actions | Предоставляет информацию о действиях сеанса событий, которые ограничены областью базы данных. |
| sys.dm_xe_database_session_events | Возвращает сведения о событиях сеанса, ограниченных областью базы данных. |
| sys.dm_xe_database_session_object_columns | Показывает значения конфигурации для объектов, привязанных к сеансу в рамках базы данных. |
| sys.dm_xe_database_session_targets | Возвращает сведения о целевых объектах сеанса событий в пределах базы данных. |
| sys.dm_xe_database_sessions | Возвращает строку для каждого сеанса событий, ограниченного областью действия базы данных, выполняемого в текущей базе данных. |
Permissions
В Базе данных SQL Azure база данных SQL в Fabric, Управляемом экземпляре SQL Azure и в SQL Server 2022 и более поздних версиях расширенные события поддерживают детальную модель разрешений. Можно предоставить следующие разрешения:
- База данных SQL Azure и база данных SQL в Fabric
- Управляемый экземпляр Azure SQL
- SQL Server
CREATE ANY DATABASE EVENT SESSION
DROP ANY DATABASE EVENT SESSION
ALTER ANY DATABASE EVENT SESSION
ALTER ANY DATABASE EVENT SESSION ADD EVENT
ALTER ANY DATABASE EVENT SESSION DROP EVENT
ALTER ANY DATABASE EVENT SESSION ADD TARGET
ALTER ANY DATABASE EVENT SESSION DROP TARGET
ALTER ANY DATABASE EVENT SESSION ENABLE
ALTER ANY DATABASE EVENT SESSION DISABLE
ALTER ANY DATABASE EVENT SESSION OPTION
Дополнительные сведения о каждом из этих элементов управления разрешениями см. в разделе CREATE EVENT SESSION, ALTER EVENT SESSION и DROP EVENT SESSION.
Все эти разрешения включены в CONTROL разрешение на базу данных, управляемый экземпляр SQL или экземпляр SQL Server. В База данных SQL Azure владелец базы данных (dbo), члены db_owner роли базы данных и администраторы логического сервера удерживают разрешение на базу данныхCONTROL. В Управляемом экземпляре Azure SQL и в SQL Server члены серверной роли sysadmin имеют разрешение CONTROL на экземпляр.
Примеры кода могут отличаться для базы данных SQL Azure, базы данных SQL в Fabric и Управляемого экземпляра SQL
Некоторые примеры кода Transact-SQL, написанные для SQL Server, требуют небольших изменений для запуска в Базе данных SQL Azure или базе данных SQL в Fabric. Одна из категорий таких примеров кода включает представления каталога, префиксы имен которых отличаются в зависимости от типа ядра СУБД:
-
server_- префикс для SQL Server и Управляемый экземпляр SQL Azure -
database_- префикс для базы данных SQL Azure, базы данных SQL в Fabric и Управляемом экземпляре SQL
База данных SQL Azure и база данных SQL в Fabric поддерживают только сеансы событий с областью действия базы данных. SQL Server Management Studio (SSMS) поддерживает сеансы событий с областью базы данных для Базы данных SQL Azure: узел расширенных событий , содержащий сеансы с областью базы данных, отображаются в каждой базе данных в обозревателе объектов.
Управляемый экземпляр SQL Azure поддерживает как сеансы уровня базы данных, так и сеансы уровня сервера. SSMS полностью поддерживает сеансы на уровне сервера для Управляемого экземпляра SQL: узел Расширенные события, содержащий все сеансы на уровне сервера, отображается в папке Управление для каждого управляемого экземпляра в обозревателе объектов.
Примечание.
Для SQL Azure Управляемого экземпляра рекомендуется использовать сеансы событий, охватывающие сервер.
Сеансы событий с областью действия базы данных не отображаются в обозревателе объектов в SSMS для Управляемого экземпляра SQL Azure. В управляемом экземпляре SQL сеансы событий, ограниченные базой данных, можно запрашивать и управлять ими только с помощью Transact-SQL.
На рисунке в следующей таблице перечислены и сравниваются два подмножества представлений каталога. Подмножества имеют разные префиксы имен, так как поддерживают разные типы ядра СУБД.
| Имя в SQL Server и Управляемый экземпляр SQL Azure | Имя в Базе данных SQL Azure, базе данных SQL в Fabric и Управляемом экземпляре SQL Azure |
|---|---|
sys.server_event_session_actionssys.server_event_session_eventssys.server_event_session_fieldssys.server_event_session_targetssys.server_event_sessions |
sys.database_event_session_actionssys.database_event_session_eventssys.database_event_session_fieldssys.database_event_session_targetssys.database_event_sessions |
Связанный контент
- Динамические административные представления расширенных событий
- Представления каталога расширенных событий (Transact-SQL)
- Тайны SQL: отслеживание причин и последовательность событий для сеансов XEvent
- Анализ и предотвращение взаимоблокировок в базе данных SQL Azure и базе данных SQL Fabric
- Краткое руководство. Расширенные события
- Создание сеанса событий с целевым объектом event_file в службе хранилища Azure
- Расширенные события в SQL Azure
- XELite: кроссплатформенная библиотека для чтения XEvents из файлов XEL или динамических потоков SQL