Мониторинг служб 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.

ssas_extended_events_ssms_start

Выбор событий

Если вы уже знаете, какие события нужно зарегистрировать, проще всего добавить их в трассировку, выполнив поиск. В противном случае для мониторинга операций обычно используются следующие события:

  • 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
Определяет уникальный идентификатор удаляемой трассировки.

См. также раздел

расширенные события SQL Server