SQL Server має Розширені Події (Extended Events), легкий механізм моніторингу, який використовується для відстеження продуктивності, усунення несправностей та аналізу поведінки системи. Вперше був представлений у SQL Server 2008 і працює як частина інфраструктури моніторингу SQL Server.
Основні характеристики Розширених Подій
- Легкість: Розширені події можуть збирати дані з мінімальним впливом на продуктивність.
- Гнучкість: Можна налаштовувати для відстеження різноманітних подій та умов.
- Докладні дані: Ви можете точно визначити, які події та супутні дані потрібно відстежувати.
- Інтегроване використання: Управління доступне як через T-SQL, так і через інтерфейс SQL Server Management Studio (SSMS).
Сфери використання
- Моніторинг продуктивності: Аналіз проблем, таких як повільні запити, блокування або споживання ресурсів.
- Усунення несправностей: Визначення операцій, які викликають певну поведінку.
- Аудит: Записування певних операцій або дій користувачів.
- Відлагодження: Відстеження та виправлення помилок у коді або процесах.
Як це працює?
Розширені події збирають події (events) у SQL Server і фіксують дані про них. Ці події можуть фільтруватися за певними умовами та відправлятися до цілі (target).
- Подія (Event): Відстежувані події, наприклад, “запит завершено”.
- Дія (Action): Додаткові дані, які потрібно зібрати під час події, наприклад, “користувач, який виконав запит”.
- Ціль (Target): Місце, куди записуються дані, наприклад, файл або пам'ять.
Наступний приклад створює сесію Розширених Подій та записує певні події у файл.
CREATE EVENT SESSION [QueryPerformance]
ON SERVER
ADD EVENT sqlserver.sql_batch_completed
(
ACTION(sqlserver.sql_text, sqlserver.client_hostname)
WHERE sqlserver.database_id = 5
)
ADD TARGET package0.asynchronous_file_target
(
SET filename = ‘C:\ExtendedEvents\QueryPerformance.xel’, max_file_size = 5, max_rollover_files = 3
)
WITH (STARTUP_STATE = ON);
GO
ALTER EVENT SESSION [QueryPerformance] ON SERVER STATE = START;
Відстеження Розширених Подій через SSMS
- В SSMS перейдіть до Management > Extended Events > Sessions.
- Клацніть правою кнопкою миші та створіть нову сесію через New Session Wizard.
- Визначте події, дії та цілі для відстеження.
- Запустіть сесію та аналізуйте результати.
Переваги
- Легкість і дружелюбність до продуктивності: Споживає менше ресурсів порівняно з Profiler або Trace.
- Гнучкість і докладне відстеження: Дає можливість налаштовувати складні сценарії для моніторингу.
- Сучасний і розширюваний: Краще підтримує нові версії SQL Server.
Перекладено з: SQLServer — Extend Events Ne işe Yarar?