пятница, 15 июня 2018 г.

Reporting Services. Статистика выполнения отчетов.


В продолжении темы с Reporting Services.

Предыдущие были про обновление Reporting Services  и про SSL  и с ним связанной ошибки. Теперь, после того как обновили до последней версии наш сервер отчетов, настроили SSL, мы решили провести аудит своих более 200 отчетов: 
            
            Какие отчеты используются? Как часто и кем? Что вообще не используются?


Получение данной информации не составит труда и база данных Reporting Services уже содержит необходимую информацию для ответов наших вопросов в предоставлении [dbo].[ExecutionLog] которая берет информацию из таблицы [dbo].[ExecutionLogStorage].

В данной таблице содержится информация об истории выполнения отчетов. По умолчанию срок хранения равен 60 дням, но можно его изменить в настройках Reporting Services в Management Studio:

.
Итак, к примеру, можно получить количество выполнения отчетов:

             select distinct c.Name ,c.Path,count(*) as CountExec
                                  FROM ExecutionLog e
                                        inner join Catalog c on    e.ReportID=c.ItemID
   
             group by c.Name , c.Path order by 3 desc

Получим сколько раз отчет из каталог c.Path  выполнялся за время хранения в журнале информации.

Добавим себя, можно убрать себя из статистики
     select distinct c.Name ,c.Path,count(*) as CountExec
                                  FROM ExecutionLog e
                                        inner join Catalog c on    e.ReportID=c.ItemID
     where UserName!=SUSER_NAME()
             group by c.Name , c.Path order by 3 desc

Можно получить самых активных пользователей Вашего сервера отчетов:

select distinct username ,count(*) as CountExec FROM ExecutionLog
group by UserName order by 2 desc

Если вы имеет в результате пользователя подобного «NT SERVICE\SQLServerReportingServices» или пользователя службы RS, то это отчёты выполняющиеся по расписанию по подписке.
У нас, лидером оказался пользователь системы монитонга J.

Отчеты , которые не запускались за время хранения истории выполнения:
    select  Path,Name from [dbo].[Catalog]
    where ItemID not in (select ReportID    FROM [ReportServer].[dbo].[ExecutionLogStorage])

    and Name !='System Resources'

Так что вот так, парочку простых запросов и можно получить статистку вашего сервера отчетов.

Дополнительная информация:

1 комментарий :