Кэширование отчетов (службы SSRS)Caching Reports (SSRS)

Сервер отчетов может кэшировать копию обработанного отчета и вернуть эту копию при открытии отчета пользователем.A report server can cache a copy of a processed report and return that copy when a user opens the report. Единственным свидетельством того, что отчет является копией сохраненного в кэш отчета, являются дата и время выполнения отчета.To a user, the only evidence available to indicate the report is a cached copy is the date and time that the report ran. Если дата или время не являются текущими, и отчет представляет собой моментальный снимок, то отчет был извлечен из кэша.If the date or time is not current and the report is not a snapshot, the report was retrieved from cache.

Кэширование может сократить время, необходимое для поиска отчета, если отчет большого размера или к нему часто обращаются.Caching can shorten the time required to retrieve a report if the report is large or accessed frequently. Если сервер перезагружается, то все кэшируемые экземпляры восстанавливаются при восстановлении подключения к сети веб-службы сервера отчетов.If the server is rebooted, all cached instances are reinstated when the Report Server Web service comes back online.

Кэширование — технология улучшения производительности.Caching is a performance-enhancement technique. Содержимое кэша энергозависимо и может измениться при добавлении, замене или удалении отчетов.The contents of the cache are volatile and can change as reports are added, replaced, or removed. Если требуется более прогнозируемая стратегия кэширования, то необходимо создать моментальный снимок отчета.If you require a more predictable caching strategy, you should create a report snapshot. Дополнительные сведения см. в разделе Установка свойств обработки отчетов.For more information, see Set Report Processing Properties.

Примечание

Службы Reporting ServicesReporting Services хранят временные файлы в базе данных, что обеспечивает поддержку пользовательских сеансов и обработку отчетов.stores temporary files in a database to support user sessions and report processing. Эти файлы кэшируются для внутреннего использования и поддерживают целостность обозреваемых объектов в течение одного сеанса браузера.These files are cached for internal use and to support a consistent viewing experience during a single browser session. Дополнительные сведения о кэшировании временных файлов для внутреннего использования см. в разделе База данных сервера отчетов (службы Reporting Services в собственном режиме).For more information about how internal-use temporary files are cached, see Report Server Database (SSRS Native Mode).

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

Кэшируемый экземпляр отчета основан на промежуточном формате отчета.A cached instance of a report is based on the intermediate format of a report. Сервер отчетов в целом кэширует только один экземпляр отчета на основе его имени.The report server generally caches one instance of a report based on the report name. Однако если отчет может содержать данные, зависящие от параметров запроса, то могут кэшироваться несколько версий отчета в любое данное время.However, if a report can contain different data based on query parameters, multiple versions of the report may be cached at any given time. Например, предположим, что имеется параметризованный отчет, который рассматривает код области в качестве значения параметра.For example, suppose you have a parameterized report that takes a region code as a parameter value. Если у четырех различных пользователей имеются четыре уникальных кода области, то создаются четыре кэшированных копии.If four different users specify four unique region codes, four cached copies are created.

Первый пользователь, который выполняет отчет с уникальным кодом области, создает кэшируемый отчет, который содержит данные для той области.The first user who runs the report with a unique region code creates a cached report that contains data for that region. Последующие пользователи, которые запрашивают отчет, используя тот же самый код области, получают его кэшированную копию.Subsequent users who request the report using the same region code get the cached copy.

Не все отчеты могут кэшироваться.Not all reports can be cached. Если отчет содержит данные, зависимые от пользователей, запрашивает у пользователей учетные данные или использует проверку подлинности Windows, то отчет не может быть кэширован.If a report includes user-dependent data, prompts users for credentials, or uses Windows Authentication, it cannot be cached.

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

Кэшированный отчет заменяется более новой версией, когда пользователь выбирает отчет, срок кэшированной копии которого истек.A cached report is replaced with a newer version when a user selects the report after the previously cached copy has expired. Отчеты, которые настроены для выполнения в виде кэшируемых экземпляров, удаляются из кэша через промежутки времени, определенные в параметрах настройки истечения срока действия.Reports that are configured to run as cached instances are removed from the cache at regular intervals based on expiration settings. Можно установить срок действия отчета в минутах или до определенного времени, в соответствии с требованием срока предоставления данных.You can set a report's expiration in minutes or at a scheduled time, as determined by the data's immediacy requirement. Если не используется API-интерфейс SOAP, то напрямую удалить отчеты из кэша невозможно.You cannot delete reports from the cache directly unless you use the SOAP API.

Чтобы настроить срок действия кэша, можно использовать общее расписание или расписание отчета.To configure cache expiration, you can use a shared schedule or report-specific schedule. Если используется общее расписание и его действие приостанавливается, то срок кэширования не истекает, пока расписание приостановлено.If you use a shared schedule and it is subsequently paused, the cache does not expire while the schedule is inoperative. Если общее расписание впоследствии удаляется, копия параметров настройки расписания сохраняется в виде расписания отчета.If the shared schedule is subsequently deleted, a copy of the schedule settings is saved as a report-specific schedule.

Если срок расписания истекает или если ядро планирования недоступно на дату истечения срока хранения кэша, то сервер отчетов выполняет активный отчет до момента продолжения выполнения расписания (либо путем изменения конечной даты расписания, либо запуском службы планирования).If a schedule expires or if the scheduling engine is unavailable at a cache expiration date, the report server runs a live report until scheduled operations can be resumed (by either extending the schedule or starting the scheduling service).

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

Для улучшения работы сервера можно осуществить предварительную загрузку кэша.To improve server performance, you can preload the cache. Предварительную загрузку коллекции экземпляров параметризованных отчетов в кэш можно выполнить двумя способами.You can preload the cache with a collection of parameterized report instances in two ways:

  1. Создание плана обновления кэша.Create a cache refresh plan. При создании плана обновления можно указать расписание для одного отчета или общее расписание.When you create a refresh plan, you can specify a schedule for a single report or specify a shared schedule.

  2. Создание управляемой данными подписки в режиме «Отсутствующий поставщик доставки».Create a data-driven subscription that uses the Null Delivery Provider. При установке параметра «Отсутствующий поставщик доставки» в качестве метода доставки подписки сервер отчетов рассматривает базу данных сервера отчетов как адресат доставки и использует специальный модуль подготовки, называемый пустым модулем подготовки отчетов.When you specify the Null Delivery Provider as the method of delivery in the subscription, the report server targets the report server database as the delivery destination and uses a specialized rendering extension called the null rendering extension. В отличие от других модулей доставки вариант «Отсутствующий поставщик доставки» не имеет параметров доставки, которые можно настраивать через определение подписки.In contrast with other delivery extensions, the Null Delivery Provider does not have delivery settings that you can configure through a subscription definition.

Кэширование отчета особенно полезно в тех случаях, когда необходимо закэшировать несколько экземпляров параметризованного отчета, где для получения различных экземпляров используются различные значения параметра.Caching a report is especially useful if you want to cache multiple instances of a parameterized report where different parameter values are used to produce different report instances. Обратите внимание на то, что можно указать только те параметры отчета, которые основаны на запросе.Note that you can only specify query-based parameters on the report.

Если задано расписание или создание управляемой данными подписки, то необходимо запланировать доставки отчета в кэш.When you specify a schedule or when you create the data-driven subscription, you schedule how often the reports are delivered to the cache. Для доставки в кэш новых копий необходимо истечение срока действия старых копий.In order for new copies to be delivered to the cache, the old copies must have expired. Поэтому необходимо установить конфигурацию свойств выполнения отчета, включающую параметры настроек срока истечения кэша.Therefore, the Execution properties of the report must be configured to include cache expiration settings. Установка срока истечения должна соответствовать определяемому вами расписанию подписки.The expiration setting must be consistent with the subscription schedule that you define. Например, если создается подписка, которая выполняется каждую ночь, то срок кэша должен также заканчиваться каждую ночь до момента выполнения подписки.For example, if you create a subscription that runs every night, the cache should also expire every night prior to the subscription's run time. Если свойства выполнения не включают в себя сроки истечения, то более новые доставки не будут обрабатываться.If the Execution properties do not include expiration times, newer deliveries are disregarded. Дополнительные сведения о планах обновления кэша см. в разделе Расписания.For more information about cache refresh plans, see Schedules. Дополнительные сведения об установке свойств см. в разделе Установка свойств обработки отчетов.For more information about setting properties, see Set Report Processing Properties. Дополнительные сведения об использовании управляемых данными подписок см. в разделе Подписки, управляемые данными.For more information about using data-driven subscriptions, see Data-Driven Subscriptions.

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

Закэшированный отчет становится недействительным в результате следующих событий: изменение определения отчета, изменение параметров отчета, изменение учетных данных источника данных или изменение параметров выполнения отчета.A cached report is invalidated in response to the following events: the report definition is modified, report parameters are modified, data source credentials change, or report execution options change. Если удаляется отчет, сохраненный в кэше, то его версия в кэше также удаляется.If you delete a report that is stored in the cache, the cached version is also deleted.

Если отчет не может быть по какой-то причине передан для обработки из экземпляра, хранящегося в кэше (например, если значения параметра отличаются от используемых для создания кэшированного отчета), то сервер отчетов повторно запускает отчет.If a report cannot be rendered from a cached instance for any reason (for example, if the parameter values that a user specifies are different from those used to produce the cached report), the report server reruns the report.

См. также:See Also

Установка параметров обработки (службы Reporting Services в режиме интеграции с SharePoint) Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Установка свойств обработки отчетов Set Report Processing Properties
Основные понятия служб Reporting Services (SSRS) Reporting Services Concepts (SSRS)
Предварительная загрузка кэша (диспетчер отчетов) Preload the Cache (Report Manager)
Расписания Schedules
Общие наборы данных в кэше (службы SSRS) Cache Shared Datasets (SSRS)
Параметры обновления кэша (диспетчер отчетов)Cache Refresh Options (Report Manager)