Поделиться через


Отчеты кэша (SSRS)

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

Кэширование может сократить время, необходимое для поиска отчета, если отчет большого размера или к нему часто обращаются. Если сервер перезапущен, все кэшированные экземпляры восстанавливаются при возвращении веб-службы сервера отчетов.

Кэширование — технология улучшения производительности. Содержимое кэша энергозависимо и может измениться при добавлении, замене или удалении отчетов. Если требуется более прогнозируемая стратегия кэширования, то необходимо создать моментальный снимок отчета. Дополнительные сведения см. в разделе "Настройка свойств обработки отчетов".

Примечание.

Службы Reporting Services хранят временные файлы в базе данных для поддержки сеансов пользователей и обработки отчетов. Эти файлы кэшируются для внутреннего использования и поддерживают целостность обозреваемых объектов в течение одного сеанса браузера. Дополнительные сведения о кэшировании временных файлов для внутреннего использования см. в разделе База данных сервера отчетов (службы SSRS в собственном режиме).

Кэшированные экземпляры

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

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

Не все отчеты могут кэшироваться. Если отчет содержит данные, зависящие от пользователей, запрашивает учетные данные или использует проверку подлинности Windows, его нельзя кэшировать.

Обновление кэша

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

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

Если срок действия расписания истекает или если подсистема планирования недоступна на дату окончания срока действия кэша, сервер отчетов запускает динамический отчет. Это действие продолжается до тех пор, пока запланированные операции не будут возобновлены. Запланированные операции можно возобновить при расширении расписания или запуске службы планирования.

Предварительная загрузка кэша

Для улучшения работы сервера можно осуществить предварительную загрузку кэша. Предварительную загрузку коллекции экземпляров параметризованных отчетов в кэш можно выполнить двумя способами.

  1. Создание плана обновления кэша. При создании плана обновления можно указать расписание для одного отчета или общее расписание.

  2. Создание управляемой данными подписки в режиме «Отсутствующий поставщик доставки». При указании поставщика доставки NULL в качестве метода доставки в подписке сервер отчетов предназначен для базы данных сервера отчетов в качестве назначения доставки. Сервер использует специализированное расширение отрисовки, называемое расширением отрисовки NULL. В отличие от других расширений доставки, поставщик доставки NULL не имеет параметров доставки, которые можно настроить с помощью определения подписки.

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

Если задано расписание или создание управляемой данными подписки, то необходимо запланировать доставки отчета в кэш. Чтобы новые копии были доставлены в кэш, старые копии должны быть просроченными. Поэтому необходимо установить конфигурацию свойств выполнения отчета, включающую параметры настроек срока истечения кэша. Установка срока истечения должна соответствовать определяемому вами расписанию подписки. Например, если создается подписка, которая выполняется каждую ночь, то срок кэша должен также заканчиваться каждую ночь до момента выполнения подписки. Если свойства выполнения не включают срок действия, новые поставки игнорируются. Дополнительные сведения о планах обновления кэша см. в разделе Расписания. Дополнительные сведения о настройке свойств см. в разделе "Задание свойств обработки отчетов". Дополнительные сведения об использовании управляемых данными подписок см. в разделе "Управляемые данными" подписки.

Условия, вызывающие истечение срока действия кэша

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

Если отчет не может быть отображен из кэшированного экземпляра по какой-либо причине, сервер отчетов повторно запускает отчет. Это действие гарантирует, что отчет создается с правильными и обновленными значениями параметров.