Мониторинг служб Analysis Services с помощью расширенных событий SQL Server
Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Расширенные события (xEvents) — это упрощенная система трассировки и мониторинга производительности, которая использует очень небольшое количество системных ресурсов. Это делает систему идеальным средством для диагностики проблем как на производственных, так и на тестовых серверах. Кроме того, он является высокомасштабируемым, настраиваемым и в SQL Server 2016 г. его проще использовать благодаря поддержке новых встроенных средств. В SQL Server Management Studio (SSMS) при подключении к экземплярам служб Analysis Services можно настраивать, запускать и отслеживать динамическую трассировку, как и при использовании SQL Server Profiler. Добавление улучшенных средств не только делает xEvents более рациональной заменой SQL Server Profiler, но и позволяет упорядочить диагностику проблем в ядре СУБД и рабочих нагрузках служб Analysis Services.
Помимо SQL Server Management Studio, вы также можете настроить SQL Server Analysis Services сеансов расширенных событий старым способом с помощью скриптов XMLA, как это поддерживалось в предыдущих выпусках.
Все события служб Analysis Services можно регистрировать и направлять конкретным получателям, как определено в расширенных событиях.
Использование SSMS для настройки служб Analysis Services
Для табличных и многомерных экземпляров SSMS отображает папку Management, содержащую сеансы xEvent, инициированные пользователем. Одновременно можно запускать несколько сеансов. Однако в текущей реализации пользовательский интерфейс SQL Server Analysis Services расширенных событий не поддерживает обновление или повторы существующего сеанса.
Папка Management не поддерживается при использовании SSMS для подключения к рабочей области Power BI Premium.
Выбор событий
Если вы уже знаете, какие события нужно зарегистрировать, проще всего добавить их в трассировку, выполнив поиск. В противном случае для мониторинга операций обычно используются следующие события:
CommandBegin и CommandEnd.
QueryBegin, QueryEndи QuerySubcubeVerbose (показывает весь запрос MDX или DAX, отправляемый на сервер), а также ResourceUsage для статистики по ресурсам, потребленным запросом, и количеству возвращенных строк.
ProgressReportBegin и ProgressReportEnd (для операций обработки).
AuditLogin и AuditLogout (фиксирует идентификатор пользователя, под которым клиентское приложение подключается к службам Analysis Services).
Выбор хранилища данных
Сеанс может передаваться в виде потока в окно Management Studio или сохраняться в файл для последующего анализа с помощью Power Query или Excel.
event_file сохраняет данные сеанса в XEL-файле.
event_stream включает параметр Просмотр данных, передаваемых в режиме реального времени в среде Management Studio.
ring_buffer сохраняет данные сеанса в памяти, пока работает сервер. При перезапуске сервера данные сеанса теряются.
Добавление полей событий
Не забудьте при настройке сеанса включить поля событий, чтобы можно было легко просматривать сведения, представляющие интерес.
ПараметрНастроить находится в удаленной области диалогового окна.
В конфигурации на вкладке "Поля событий" выберите поле TextData , чтобы оно отображалось рядом с событием и показывало возвращаемые значения, включая запросы, которые выполняются на сервере.
После настройки сеанса для нужных событий и хранилища данных можно нажать кнопку скрипта, чтобы отправить конфигурацию в одно из поддерживаемых назначений, включая файл, новый запрос в SQL Server Management Studio и буфер обмена.
Обновление сеансов
После создания сеанса не забудьте обновить папку "Сеансы" в Management Studio для просмотра сеанса, который вы только что создали. Если вы настроили event_stream, можно щелкнуть правой кнопкой мыши имя сеанса и выбрать Просмотр динамических данных для мониторинга активности сервера в режиме реального времени.
Скрипт XMLA для запуска
Расширенная трассировка событий включается с помощью команды скрипта создания объекта, аналогичной команде XML для аналитики, как показано ниже.
<Execute ...>
<Command>
<Batch ...>
<Create ...>
<ObjectDefinition>
<Trace>
<ID>trace_id</ID>
<Name>trace_name</Name>
<ddl300_300:XEvent>
<event_session ...>
<event package="AS" name="AS_event">
<action package="PACKAGE0" .../>
</event>
<target package="PACKAGE0" name="asynchronous_file_target">
<parameter name="filename" value="data_filename.xel"/>
<parameter name="metadatafile" value="metadata_filename.xem"/>
</target>
</event_session>
</ddl300_300:XEvent>
</Trace>
</ObjectDefinition>
</Create>
</Batch>
</Command>
<Properties></Properties>
</Execute>
Следующие элементы должны быть определены пользователем с учетом потребностей трассировки:
trace_id
Определяет уникальный идентификатор для данной трассировки.
trace_name
Имя, присвоенное данной трассировке. Как правило, понятное определение трассировки. Обычно принято использовать в качестве имени значение trace_id .
AS_event
Событие служб Analysis Services, к которому должен быть предоставлен доступ. Имена событий см. в разделе События трассировки служб Analysis Services .
data_filename
Имя файла данных, который содержит данные события. Это имя имеет в качестве суффикса отметку времени, что позволяет предотвратить перезапись данных, если одно и то же сообщение трассировки передается снова и снова.
metadata_filename
Имя файла данных, который содержит метаданные события. Это имя имеет в качестве суффикса отметку времени, что позволяет предотвратить перезапись данных, если одно и то же сообщение трассировки передается снова и снова.
Скрипт XMLA для остановки
Чтобы остановить объект расширенных событий трассировки, необходимо удалить этот объект с помощью команды скрипта удаления объекта, аналогичной применяемой в XML для аналитики, как показано ниже.
<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
<Command>
<Batch ...>
<Delete ...>
<Object>
<TraceID>trace_id</TraceID>
</Object>
</Delete>
</Batch>
</Command>
<Properties></Properties>
</Execute>
Следующие элементы должны быть определены пользователем с учетом потребностей трассировки:
trace_id
Определяет уникальный идентификатор удаляемой трассировки.