Как проверить выполнение отчетов в службах отчетов SQL Server (SSRS)

Нужно ли вам знать, как часто выполняется отчет, кто или какие процессы запускают отчет, сколько времени для его запуска, статистика по параметрам отчета, какие отчеты не используются и т. Д.? Службы отчетов SQL Server имеют встроенные средства ведения журнала аудита, которые довольно легко могут предоставить вам такую ​​информацию.

Ведение журнала аудита называется ведением журнала выполнения в SSRS, но я просто назову это ведением журнала в этой статье.

В этой статье показано, как ведение журнала работает в SSRS 2012. Если вы используете предыдущую версию SSRS, вы найдете аналогичные возможности. Регистрация в SSRS 2008 R2 практически идентична регистрации в SSRS 2012.

Обзор ведения журнала

Вот как работает ведение журнала: ведение журнала включается и настраивается на сервере служб Reporting Services. Когда он включен, данные аудита выполнения записываются в таблицу dbo.ExecutionLogStorage в базе данных ReportServer. Чтобы получить доступ к данным аудита, вы можете запросить эту таблицу напрямую или использовать одно из трех представлений в базе данных ReportServer: ExecutionLog, ExecutionLog2 и ExecutionLog3.

Обратите внимание, что вам придется взаимодействовать с двумя местоположениями при работе с входом в систему SSRS: сервер служб Reporting Services для включения и настройки ведения журнала и база данных ReportServer, где собираются данные аудита и откуда они доступны.

Включение и настройка ведения журнала

Ведение журнала включается и настраивается путем изменения нескольких свойств на сервере служб отчетов. Чтобы получить доступ к свойствам сервера, нам нужно запустить SQL Server Management Studio с правами администратора. Один из способов сделать это - щелкнуть правой кнопкой мыши ярлык SSMS и выбрать « Запуск от имени администратора» .

В окне « Подключение к серверу» выберите «Службы Reporting Services» в раскрывающемся списке « Тип сервера» . Также убедитесь, что имя вашего сервера и метод аутентификации указаны правильно, прежде чем нажимать кнопку « Подключиться» .

После подключения к серверу служб Reporting Services щелкните его правой кнопкой мыши в обозревателе объектов и выберите «Свойства».

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

Выберите страницу Дополнительно далее. Обратите внимание, что те же свойства из предыдущего шага также доступны здесь в разделе Другое, как свойства EnableExecutionLogging и ExecutionLogDaysKept.

На этой странице есть еще одно свойство конфигурации ведения журнала. Если вы прокрутите список свойств до конца, вы увидите одно из них с именем ExecutionLogLevel. Это свойство может иметь два значения: Normal и Verbose (нет раскрывающегося списка, содержащего эти значения; вам просто нужно ввести нужное значение). Подробно означает, что будут собраны дополнительные данные аудита об источниках данных и наборах данных (подробнее об этом в будущем).

Какие данные аудита собираются и где

Данные аудита выполнения записываются в таблицу dbo.ExecutionLogStorage в базе данных ReportServer при каждом выполнении отчета. Чтобы увидеть эту таблицу, нам нужно подключиться к SQL Server, используя тип сервера компонента Database Engine.

Чтобы увидеть эту таблицу, нам нужно подключиться к SQL Server, используя тип сервера компонента Database Engine

После подключения найдите таблицу dbo.ExecutionLogStorage в базе данных ReportServer.

ExecutionLogStorage в базе данных ReportServer

Изучите столбцы, чтобы увидеть схему ведения журнала.

Изучите столбцы, чтобы увидеть схему ведения журнала

Обратите особое внимание на последний столбец, AdditionInfo. Это столбец XML. Когда значение свойства ExecutionLogLevel, которое мы видели ранее, установлено на Verbose , в этом столбце станут доступны дополнительные узлы xml, которые предоставляют вам информацию об источниках данных и наборах данных.

Все столбцы, включая столбцы AdditionalInfo, описаны на этой странице Microsoft Technet. Журнал выполнения сервера отчетов и представление ExecutionLog3 ,

Поддержка потребления данных аудита

Конечно, вы можете просто запросить таблицу dbo.ExecutionLogStorage напрямую, когда вы хотите узнать, как используются ваши отчеты, но база данных ReportServer также содержит несколько представлений, которые вы можете использовать вместо этого и которые были разработаны для того, чтобы сделать данные более читабельными. Представления: ExecutionLog, ExecutionLog2 и ExecutionLog3. Все это разные версии одного и того же представления, которое развивалось в разных версиях SSRS. Все они извлекают данные из одной и той же таблицы dbo.ExecutionLogStorage, хотя и по-разному. Для любой новой разработки вы, вероятно, захотите использовать более сложную версию ExecutionLog3. Два других есть для совместимости.

Вы можете найти подробную информацию о каждом из представлений на той же странице Microsoft Technet Журнал выполнения сервера отчетов и представление ExecutionLog3 ,

Есть также несколько примеров отчетов SSRS, которые Microsoft делает доступными. Среди них - аудиторские отчеты, которые вы можете использовать, изменять, учиться и т. Д. Запросы и отчеты по данным журнала выполнения отчетов покажет вам, как получить образцы отчетов, а также другую полезную информацию о регистрации.

Это должно помочь вам начать работу с журналом аудита в SSRS.

Наслаждайтесь!