Кэширование отчетов в службах Reporting Services
Сервер отчетов может кэшировать копию обработанного отчета и вернуть эту копию при открытии отчета пользователем. Единственным свидетельством того, что отчет является копией сохраненного в кэш отчета, являются дата и время выполнения отчета. Если дата или время не являются текущими, и отчет представляет собой моментальный снимок, то отчет был извлечен из кэша.
Кэширование может сократить время, необходимое для поиска отчета, если отчет большого размера или к нему часто обращаются. Если сервер перезагружается, то все кэшируемые экземпляры восстанавливаются при восстановлении подключения к сети веб-службы сервера отчетов.
Кэширование — технология улучшения производительности. Содержимое кэша энергозависимо и может измениться при добавлении, замене или удалении отчетов. Если требуется более прогнозируемая стратегия кэширования, то необходимо создать моментальный снимок отчета. Дополнительные сведения см. в разделе Задание свойств обработки отчетов.
Примечание |
---|
Службы Службы Reporting Services хранят временные файлы в базе данных, что обеспечивает поддержку пользовательских сеансов и обработку отчетов. Эти файлы кэшируются для внутреннего использования и поддерживают целостность обозреваемых объектов в течение одного сеанса браузера. Дополнительные сведения о кэшировании временных файлов для внутреннего использования см. в разделе База данных сервера отчетов. |
Кэшированные экземпляры
Кэшируемый экземпляр отчета основан на промежуточном формате отчета. Сервер отчетов в целом кэширует только один экземпляр отчета на основе его имени. Однако если отчет может содержать данные, зависящие от параметров запроса, то могут кэшироваться несколько версий отчета в любое данное время. Например, предположим, что имеется параметризованный отчет, который рассматривает код области в качестве значения параметра. Если у четырех различных пользователей имеются четыре уникальных кода области, то создаются четыре кэшированных копии.
Первый пользователь, который выполняет отчет с уникальным кодом области, создает кэшируемый отчет, который содержит данные для той области. Последующие пользователи, которые запрашивают отчет, используя тот же самый код области, получают его кэшированную копию.
Не все отчеты могут кэшироваться. Если отчет содержит данные, зависимые от пользователей, запрашивает у пользователей учетные данные или использует проверку подлинности Windows, то отчет не может быть кэширован.
Обновление кэша
Кэшированный отчет заменяется более новой версией, когда пользователь выбирает отчет, срок кэшированной копии которого истек. Отчеты, которые настроены для выполнения в виде кэшируемых экземпляров, удаляются из кэша через промежутки времени, определенные в параметрах настройки истечения срока действия. Можно установить срок действия отчета в минутах или до определенного времени, в соответствии с требованием срока предоставления данных. Если не используется API-интерфейс SOAP, то напрямую удалить отчеты из кэша невозможно.
Чтобы настроить срок действия кэша, можно использовать общее расписание или расписание отчета. Если используется общее расписание и его действие приостанавливается, то срок кэширования не истекает, пока расписание приостановлено. Если общее расписание впоследствии удаляется, копия параметров настройки расписания сохраняется в виде расписания отчета.
Если срок расписания истекает или если ядро планирования недоступно на дату истечения срока хранения кэша, то сервер отчетов выполняет активный отчет до момента продолжения выполнения расписания (либо путем изменения конечной даты расписания, либо запуском службы планирования).
Предварительная загрузка кэша
Для улучшения работы сервера можно осуществить предварительную загрузку кэша. Предварительную загрузку коллекции экземпляров параметризованных отчетов в кэш можно выполнить двумя способами.
Создание плана обновления кэша. При создании плана обновления можно указать расписание для одного отчета или общее расписание.
Создание управляемой данными подписки в режиме «Отсутствующий поставщик доставки». При установке параметра «Отсутствующий поставщик доставки» в качестве метода доставки подписки сервер отчетов рассматривает базу данных сервера отчетов как адресат доставки и использует специальный модуль подготовки, называемый пустым модулем подготовки отчетов. В отличие от других модулей доставки вариант «Отсутствующий поставщик доставки» не имеет параметров доставки, которые можно настраивать через определение подписки.
Кэширование отчета особенно полезно в тех случаях, когда необходимо закэшировать несколько экземпляров параметризованного отчета, где для получения различных экземпляров используются различные значения параметра. Обратите внимание на то, что можно указать только те параметры отчета, которые основаны на запросе.
Если задано расписание или создание управляемой данными подписки, то необходимо запланировать доставки отчета в кэш. Для доставки в кэш новых копий необходимо истечение срока действия старых копий. Поэтому необходимо установить конфигурацию свойств выполнения отчета, включающую параметры настроек срока истечения кэша. Установка срока истечения должна соответствовать определяемому вами расписанию подписки. Например, если создается подписка, которая выполняется каждую ночь, то срок кэша должен также заканчиваться каждую ночь до момента выполнения подписки. Если свойства выполнения не включают в себя сроки истечения, то более новые доставки не будут обрабатываться. Дополнительные сведения о планах обновления кэша см. в разделе Планирование отчетов, общих наборов данных и подписок. Дополнительные сведения об установке свойств см. в разделе Задание свойств обработки отчетов. Дополнительные сведения об использовании управляемых данными подписок см. в разделе Подписки, управляемые данными.
Условия, вызывающие истечение срока действия кэша
Кэшированный отчет становится недействительным в результате следующих событий: изменения определения отчета, изменения параметров отчета, изменения учетных данных источника данных или изменения параметров выполнения отчета. Если удаляется отчет, сохраненный в кэше, то его версия в кэше также удаляется.
Если отчет не может быть по какой-то причине передан для обработки из экземпляра, хранящегося в кэше (например, если значения параметра отличаются от используемых для создания кэшированного отчета), то сервер отчетов повторно запускает отчет.
См. также