Presentation is loading. Please wait.

Presentation is loading. Please wait.

Использование Extended Events

Similar presentations


Presentation on theme: "Использование Extended Events"— Presentation transcript:

1 Использование Extended Events
Докладчик: Тарас Бобровицкий Sr. DB Wincor Nixdorf

2 Использование Extended Events
Архитектура Основная терминология DDL и запросы к Extended Events Возможности UI

3 Знакомство с Extended Events
Появились в SQL Server 2008 Заменяет SQL Trace/Profiler Больший список событий Работает на более низком уровне

4 Демонстрация Пример создания сеанса Extended Events в SSMS

5 Архитектура Компоненты Database Engine Extended Events Engine
Memory Buffers Thread Pool

6 Архитектура – жизненный цикл
Поток выполнения Событие возникло в коде Проверка включения нет да

7 Архитектура – жизненный цикл
Установлены дополнительные колонки? Сбор данных по доп. колонкам да нет Сбор стандартных данных по событию

8 Архитектура – жизненный цикл
Вычисление предикатов Fail Поток выполнения Успешно Выполнение Actions Отправка информации синхронным Target’ам Запись в буфер для асинхронных Target’ов

9 Терминология Package Event Action Predicate Type/Map Target

10 Package Контейнер для метаданных select * from sys.dm_xe_packages p
where p.capabilities is null or p.capabilities & 1 = 0

11 Event Обьект метаданных описывающий событие select
p.name package_name, o.name event_name, o.description from sys.dm_xe_objects o inner join sys.dm_xe_packages p on o.package_guid=p.guid where (p.capabilities is null or p.capabilities & 1 = 0) and (o.capabilities is null or o.capabilities & 1 = 0) and o.object_type=N'event'

12 Event Обьект метаданных описывающий событие

13 Event Использует категоризацию Event Tracing for Windows (ETW) – Каналы + Ключевые Слова Каналы Admin Analytic Debug Operational

14 Event Колонки select * from sys.dm_xe_object_columns c
where c.object_name='sql_statement_completed' Колонки

15 Action Действие, которое выполняется синхронно с возникновением события select p.name package_name, o.name event_name, o.description from sys.dm_xe_objects o inner join sys.dm_xe_packages p on o.package_guid=p.guid where (p.capabilities is null or p.capabilities & 1 = 0) and (o.capabilities is null or o.capabilities & 1 = 0) o.object_type=N'action'

16 Action Действие, которое выполняется синхронно с возникновением события

17 Predicate Предикат, содержащий фильтрующее условие для событий
В выражениях используют Data-колонки событий Pred_source обьекты пакета Синхронны

18 Predicate Pred_source обьекты select
p.name package_name, o.name pred_source_name, o.description from sys.dm_xe_objects o inner join sys.dm_xe_packages p on o.package_guid=p.guid where (p.capabilities is null or p.capabilities & 1 = 0) and (o.capabilities is null or o.capabilities & 1 = 0) o.object_type=N'pred_source'

19 Predicate Pred_source обьекты

20 Predicate Функции сравнения select
p.name package_name, o.name pred_source_name, o.description from sys.dm_xe_objects o inner join sys.dm_xe_packages p on o.package_guid=p.guid where (p.capabilities is null or p.capabilities & 1 = 0) and (o.capabilities is null or o.capabilities & 1 = 0) o.object_type=N'pred_compare'

21 Predicate Функции сравнения

22 Types/Maps select * from sys.dm_xe_objects o
where o.object_type in (N'type',N'map')

23 Target Обьект, отвечающий за запись собраных данных

24 Target Синхронные Асинхронные
Блок Скинуть событие Скинуть много событий

25 Event Session Сеанс сбора данных через XE

26 DDL и запросы к XE Создание сеанса Запуск/остановка сеанса
Удаление сеанса Запросы с данным XE

27 Создание сеанса CREATE EVENT SESSION [test_session] ON SERVER
ADD EVENT sqlserver.sp_statement_starting( ACTION(sqlserver.transaction_id)) ADD TARGET package0.event_file(SET filename=N'F:\SQLData\MSSQL11.MSSQLSERVER\MSSQL\Log\test_session.xel') WITH (STARTUP_STATE=OFF) GO

28 Запуск/остановка сеанса
alter event session [test_session] on server State=start

29 Удаление сеанса drop event session [test_session] on server

30 Чтение собранных данных
Ring Buffer select cast(t.target_data as xml) data from sys.dm_xe_session_targets t inner join sys.dm_xe_sessions s on t.event_session_address=s.address where s.name=N'test_session' and target_name='ring_buffer'

31 Чтение собранных данных
Файл select cast(log.event_data as xml) from sys.fn_xe_file_target_read_file(N'F:\XE_Trace\test_session_0_ xel',NULL,NULL,NULL) log


Download ppt "Использование Extended Events"

Similar presentations


Ads by Google