EXTENDED EVENTS: Обойти XML

Tags: SQL, SQL Server, Extended Events, Azure

Работать с XML  - сплошная боль.  Писать запросы против XML действительно трудно.  Если бы не существовало способов избежать XML, вряд ли кто-то выступал бы за  Extended Events. Давайте рассмотрим способы, позволяющие не использовать в работе XML.

Окно Live Data 

Концепция проста. Если кликните правой кнопкой мыши на любом сеансе Extended Events внутри SSMS, если это активный сеанс, увидите пункт меню: Watch Live Data. Кликнув на него, откроется окно Live Data. Здесь мы сталкиваемся с проблемой, не менее серьезной, чем XML. Вот результат при первом открытии:

В верхней части экрана  расположены все события. В таком случае я собираю запросы через sql_batch_completed and rpc_completed. Выбор любого события в верхней части экрана покажет детали этого события внизу экрана. 

Extended Events - универсальное средство просмотра любого события. Но можно настроить и просмотр сеанса.  Более того, эта настройка сохраняется автоматически и будет использована повторно.

Итак, как же это работает? Два способа.

Первый: правой кнопкой мыши щелкните на деталях в любом из этих полей.  Откроется следующее меню

Щелкните на Show Column in Table и это поле добавится на экране над деталями.

Второй: правой клавишей мыши щелкните в верхней части, прямо в верхней части сетки. Вы получите меню, которое выглядит так:

Щелкните на “Choose Columns…” Откроется новое окно:

Не будем вдаваться в детали, как с этим работать. Слева есть данные, собранные событиями, определенными в Вашем сеансе.  Переместите их вправо, чтобы создать собственное представление.  Например, вот представление, которое я использую чаще всего при просмотре данных производительности запросов:

Запрос виден как в качестве пакета, так и оператора, продолжительность, CPU, чтение, запись и все это в хорошем аккуратном формате.  Более того, даже после того, как Вы это сделаете, останется возможность щелкнуть на любую заданную строку и посмотреть детали.  Теперь Вы обладаете всеми видами дополнительной функциональности.  Вы можете искать эти столбцы, можете сортировать, группировать и агрегировать, настраивать фильтр данных по времени, или любому столбцу и значению.  Короче говоря, у Вас есть инструмент исследования данных, не прибегая к использованию XML.

Но это подходит для небольших фрагментов данных. В качестве альтернативы, файлы можно открывать напрямую. Можно настроить представление данных и затем повторно использовать эту настройку, не проводя дополнительной работы.  Вы даже можете сохранить её, передать коллегам или разместить на нескольких машинах.

DBATools

Если вы до сих пор не сталкивались с DBATools, тогда Вас ждет приятная неожиданность. Это набор инструментов PowerShell, который полностью изменит способ администрирования и работы с SQL Server.  А его стоимость равна нулю.

DBATools обладает функциональностью Extended Events уже многие годы.  И это не просто одна или две команды.  Целый ряд функций помогают работать и поддерживать Extended Events.

Теперь, используя  DBATools, вам не нужно пытаться понять XPath. Вместо этого, Вы можете запросить файл непосредственно в удобочитаемой форме. Более того, т.к. Вы уже в PowerShell, просто передайте файл в любой другой формат или расположение. 

Заключение

Используя эти два метода и ничего более, Вы можете легко обойти XML. Extended Events не сложны в использовании.  А даже очень просты.

У всех новых функций в SQL Server есть  Extended Events, Trace Events вообще отсутствуют. База данных Azure SQL позволяет использовать только Extended Events. В них больше функциональности, а нагрузку они создают в разы меньше.

No Comments

Add a Comment