SQL Server — Для чого потрібні Розширені Події?

SQL Server має Розширені Події (Extended Events), легкий механізм моніторингу, який використовується для відстеження продуктивності, усунення несправностей та аналізу поведінки системи. Вперше був представлений у SQL Server 2008 і працює як частина інфраструктури моніторингу SQL Server.

Основні характеристики Розширених Подій

  1. Легкість: Розширені події можуть збирати дані з мінімальним впливом на продуктивність.
  2. Гнучкість: Можна налаштовувати для відстеження різноманітних подій та умов.
  3. Докладні дані: Ви можете точно визначити, які події та супутні дані потрібно відстежувати.
  4. Інтегроване використання: Управління доступне як через 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

  1. В SSMS перейдіть до Management > Extended Events > Sessions.
  2. Клацніть правою кнопкою миші та створіть нову сесію через New Session Wizard.
  3. Визначте події, дії та цілі для відстеження.
  4. Запустіть сесію та аналізуйте результати.

Переваги

  • Легкість і дружелюбність до продуктивності: Споживає менше ресурсів порівняно з Profiler або Trace.
  • Гнучкість і докладне відстеження: Дає можливість налаштовувати складні сценарії для моніторингу.
  • Сучасний і розширюваний: Краще підтримує нові версії SQL Server.

Перекладено з: SQLServer — Extend Events Ne işe Yarar?

Leave a Reply

Your email address will not be published. Required fields are marked *