Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения:База данных SQL Azure
Управляемый экземпляр SQL Azure
база данных SQL в Fabric
Общие сведения о расширенных событиях см. в статье:
Набор функций, функциональные возможности и сценарии использования расширенных событий в Базе данных SQL Azure, базе данных SQL в Fabric и Управляемом экземпляре SQL Azure похожи на то, что доступно в SQL Server. Основные различия:
- В Azure SQL Database, SQL базе данных в Fabric и управляемом экземпляре Azure SQL всегда используются блобы в Azure Storage, а не файлы на диске.
- В SQL Server целевой
event_fileобъект может использовать файлы на диске или блобы в службе хранилища Azure.
- В SQL Server целевой
- В Базе данных SQL Azure и базе данных SQL в Fabric сеансы событий всегда находятся в пределах базы данных. Это означает, что:
- Сеанс событий в одной базе данных не может собирать события из другой базы данных.
- Событие должно происходить в контексте пользовательской базы данных, включаемой в сеанс.
- В Управляемый экземпляр SQL Azure можно создавать сеансы событий с областью действия сервера и базой данных. Рекомендуется использовать сеансы событий с областью действия сервера для большинства сценариев.
Get started
Существует два пошаговых примера, которые помогут вам быстро приступить к работе с расширенными событиями:
-
Создайте сеанс событий с целевым объектом event_file в службе хранилища Azure. В этом примере показано, как записывать данные о событиях в файле (BLOB-объекте) в службе хранилища Azure с помощью целевого
event_fileобъекта и содержать рекомендации по устранению неполадок для распространенных ошибок. Используйте это, если вам нужно сохранить сохраненные данные о событиях или использовать средство просмотра событий в SQL Server Management Studio (SSMS) для анализа захваченных данных. -
Создайте сеанс событий с целевым объектом ring_buffer в памяти. В этом примере показано, как записать последние события из сеанса событий в памяти с помощью целевого
ring_bufferобъекта. Используйте это как быстрый способ просмотреть последние события во время нерегламентированных расследований или устранения неполадок, не сохраняя собранные данные о событиях.
Расширенные события можно использовать для мониторинга реплик только для чтения. Дополнительные сведения см. в статье "Чтение запросов на реплики".
Лучшие практики
Выполните следующие рекомендации для безопасного использования расширенных событий, надежного и не влияя на работоспособность ядра СУБД и производительность рабочей нагрузки.
- Если вы используете целевой
event_fileобъект:- В зависимости от событий, добавленных в сеанс, файлы, созданные
event_fileцелевым объектом, могут содержать конфиденциальные данные. Тщательно просмотрите назначения ролей RBAC и списки управления доступом (ACL) в учетной записи хранения и контейнере, включая унаследованный доступ, чтобы избежать предоставления ненужного доступа на чтение. Следуйте принципу наименьших привилегий. - Используйте учетную запись хранения в том же регионе Azure, что и база данных или управляемый экземпляр, где создается сеансы событий.
- Выравнивание избыточности учетной записи хранения с избыточностью базы данных, эластичного пула или управляемого экземпляра. Для локальных избыточных ресурсов используйте LRS, GRS или RA-GRS. Для ресурсов, избыточных между зонами, используйте ZRS, GZRS или RA-GZRS. Дополнительные сведения см. в служба хранилища Azure избыточности.
- Не используйте уровень доступа к BLOB-объектам, кроме
Hot. - Не включите иерархическое пространство имен для учетной записи хранения.
- В зависимости от событий, добавленных в сеанс, файлы, созданные
- Если вы хотите создать непрерывно выполняющийся сеанс событий, который запускается автоматически после каждой ядро СУБД перезапуска (например, после отработки отказа или события обслуживания), включите параметр
STARTUP_STATE = ONсеанса событий в инструкции илиCREATE EVENT SESSIONинструкцииALTER EVENT SESSION. - И наоборот, используется
STARTUP_STATE = OFFдля краткосрочных сеансов событий, таких как те, которые используются в нерегламентированном устранении неполадок. - В База данных SQL Azure не считывайте события взаимоблокировки из встроенного сеанса
dlсобытий. Если собрано большое количество событий взаимоблокировки, считывание их с помощью функции sys.fn_xe_file_target_read_file() может вызвать ошибку вне памяти вmasterбазе данных. Это может повлиять на обработку входа и привести к сбою приложения. Рекомендуемые способы отслеживания взаимоблокировок см. в разделе "Сбор графов взаимоблокировок" в База данных SQL Azure с расширенными событиями.
Целевые объекты сеанса событий
Дополнительные сведения о целевых объектах расширенных событий, поддерживаемых в базе данных SQL Azure, базе данных SQL в Fabric, Управляемом экземпляре SQL Azure и SQL Server, см. в разделе "Целевые объекты для расширенных событий".
различия Transact-SQL
При выполнении инструкций CREATE EVENT SESSION, ALTER EVENT SESSION и DROP EVENT SESSION в SQL Server и в Управляемый экземпляр SQL Azure используется ON SERVER предложение. В База данных SQL Azure вместо этого используется ON DATABASE предложение, так как в сеансах событий База данных SQL Azure областью действия базы данных.
Представления каталога расширенных событий
Расширенные события предоставляют несколько представлений каталога. Представления каталога сообщают о метаданных или определении сеанса событий. Эти представления не возвращают сведения об экземплярах активных сеансов событий.
Список представлений каталога для каждой платформы см. в разделе "Представления каталога расширенных событий".
Динамические административные представления расширенных событий
Расширенные события предоставляют несколько динамических административных представлений (DMV). Динамические административные представления возвращают сведения о запущенных сеансах событий.
Список представлений динамического управления для каждой платформы см. в разделе "Представления динамического управления расширенных событий".
Общие динамические административные представления
Существуют дополнительные динамические административные представления расширенных событий, которые являются общими для База данных SQL Azure, Управляемый экземпляр SQL Azure и SQL Server:
Доступные события, действия и целевые объекты
С помощью этого запроса можно получить доступные события, действия и целевые объекты:
SELECT o.object_type,
p.name AS package_name,
o.name AS db_object_name,
o.description AS db_obj_description
FROM sys.dm_xe_objects AS o
INNER JOIN sys.dm_xe_packages AS p
ON p.guid = o.package_guid
WHERE o.object_type IN ('action','event','target')
ORDER BY o.object_type,
p.name,
o.name;
Permissions
Смотрите разрешения для получения подробной информации по каждой платформе.
Авторизация и управление контейнером хранилища
При использовании целевой event_file настройки для двоичных объектов хранилища Azure, ядро СУБД, выполняющее сеанс событий, должно иметь определенный доступ к контейнеру BLOB-объектов. Этот доступ можно предоставить одним из следующих способов:
Назначьте роль RBAC участника больших двоичных объектов хранилища управляемому удостоверению логического сервера SQL Azure или управляемого экземпляра SQL Azure в контейнере и создайте учетные данные для указания ядро СУБД использовать управляемое удостоверение для проверки подлинности.
В качестве альтернативы назначению роли RBAC участника больших двоичных объектов хранилища можно назначить следующие действия RBAC:
Namespace Action Microsoft.Storage/storageAccounts/blobServices/containers/readMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/deleteMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/readMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/writeСоздайте маркер SAS для контейнера и сохраните маркер в учетных данных.
В База данных SQL Azure необходимо использовать учетные данные с областью базы данных. В Управляемом экземпляре SQL Azure и SQL Server используйте учетные данные на уровне сервера.
Маркер SAS, создаваемый для контейнера служба хранилища Azure, должен соответствовать следующим требованиям:
-
rwdlУ вас есть разрешения (Read,Write,Delete)List. - Время начала и срок действия, охватывающие время существования сеанса событий.
- Нет ограничений IP-адресов.
-
Управление ресурсами
В База данных SQL Azure потребление памяти расширенными сеансами событий динамически контролируется ядро СУБД для минимизации проблем ресурсов.
Существует ограничение на память, доступную для сеансов событий:
- В одной базе данных общий объем памяти сеанса ограничен 128 МБ.
- В эластичном пуле отдельные базы данных ограничены ограничениями одной базы данных, и в общей сложности они не могут превышать 512 МБ.
Если вы получаете сообщение об ошибке, ссылающееся на ограничение памяти, можно выполнить следующие действия:
- уменьшить количество одновременно запущенных сеансов событий;
- Использование
CREATEиALTERинструкции для сеансов событий сокращают объем памяти, указаннойMAX_MEMORYв предложении для сеанса.
Note
В расширенных событиях MAX_MEMORY предложение отображается в двух контекстах: при создании или изменении сеанса (на уровне сеанса) и при использовании ring_buffer целевого объекта (на целевом уровне). Указанные выше ограничения применяются к памяти уровня сеанса.
В База данных SQL Azure существует ограничение на количество запущенных сеансов событий:
- В одной базе данных ограничение равно 100.
- В эластичном пуле ограничение составляет 100 сеансов в пределах базы данных на пул.
В плотных эластичных пулах запуск нового расширенного сеанса событий может завершиться ошибкой из-за ограничений памяти, даже если общее количество запущенных сеансов ниже 100.
Чтобы найти общую память, потребляемую сеансом событий, выполните следующий запрос во время подключения к базе данных, в которой запущен сеанс событий:
SELECT name AS session_name,
total_buffer_size + total_target_memory AS total_session_memory
FROM sys.dm_xe_database_sessions;
Чтобы найти общую память сеанса событий для эластичного пула, этот запрос необходимо выполнить в каждой базе данных в пуле.