Informes almacenados en caché (SSRS)Caching Reports (SSRS)

Un servidor de informes puede almacenar en memoria caché una copia de un informe procesado y devolverla cuando el usuario abra el informe.A report server can cache a copy of a processed report and return that copy when a user opens the report. Para un usuario, la única prueba visible que indica que el informe es una copia en caché es la fecha y la hora de ejecución.To a user, the only evidence available to indicate the report is a cached copy is the date and time that the report ran. Si la fecha o la hora no son actuales y el informe no es una instantánea, significa que éste se ha obtenido de la caché.If the date or time is not current and the report is not a snapshot, the report was retrieved from cache.

El almacenamiento en caché puede reducir el tiempo necesario para recuperar un informe cuando éste es demasiado grande o se utiliza con frecuencia.Caching can shorten the time required to retrieve a report if the report is large or accessed frequently. Si se reinicia el servidor, las instancias almacenadas en la caché se restablecen cuando el servicio web del servidor de informes vuelve a estar en línea.If the server is rebooted, all cached instances are reinstated when the Report Server Web service comes back online.

El almacenamiento en caché es una técnica de mejora del rendimiento.Caching is a performance-enhancement technique. El contenido de la caché es volátil y puede cambiar conforme se agregan, reemplazan o eliminan informes.The contents of the cache are volatile and can change as reports are added, replaced, or removed. Si precisa una estrategia de almacenamiento en caché más predecible, se recomienda que cree una instantánea del informe.If you require a more predictable caching strategy, you should create a report snapshot. Para más información, vea Establecer las propiedades del procesamiento de informes.For more information, see Set Report Processing Properties.

Nota

Reporting ServicesReporting Services almacena los archivos temporales en una base de datos para su uso en las sesiones de usuario y el procesamiento de informes. Reporting ServicesReporting Services stores temporary files in a database to support user sessions and report processing. Estos archivos se almacenan en la caché para uso interno y para lograr coherencia en la visualización durante una sesión única del explorador.These files are cached for internal use and to support a consistent viewing experience during a single browser session. Para más información sobre cómo se almacenan en la memoria caché los archivos temporales de uso interno, vea Base de datos del servidor de informes (Modo nativo de SSRS).For more information about how internal-use temporary files are cached, see Report Server Database (SSRS Native Mode).

Instancias almacenadas en cachéCached Instances

Una instancia de un informe almacenada en caché se basa en el formato intermedio del informe.A cached instance of a report is based on the intermediate format of a report. Por lo general, el servidor de informes almacena en caché una instancia de un informe según el nombre del informe.The report server generally caches one instance of a report based on the report name. Sin embargo, si un informe puede incluir datos diferentes basados en parámetros de consulta, es posible que se almacenen en caché varias versiones del informe.However, if a report can contain different data based on query parameters, multiple versions of the report may be cached at any given time. Por ejemplo, supongamos que dispone de un informe con parámetros que utiliza el código de región como un valor de parámetro.For example, suppose you have a parameterized report that takes a region code as a parameter value. Si cuatro usuarios distintos especifican cuatro códigos de región diferentes, se crearán cuatro copias en la memoria caché.If four different users specify four unique region codes, four cached copies are created.

El primer usuario que ejecuta el informe con un código de región exclusivo crea un informe en caché que contiene los datos correspondientes a la región indicada.The first user who runs the report with a unique region code creates a cached report that contains data for that region. Los siguientes usuarios que soliciten el informe con el mismo código de región obtendrán la copia almacenada en la caché.Subsequent users who request the report using the same region code get the cached copy.

No todos los informes se pueden almacenar en caché.Not all reports can be cached. Por ejemplo, no se pueden almacenar en la memoria caché los informes que incluyen datos dependientes del usuario, que solicitan las credenciales a los usuarios o que utilizan la autenticación de Windows.If a report includes user-dependent data, prompts users for credentials, or uses Windows Authentication, it cannot be cached.

Actualizar la memoria cachéRefreshing the Cache

Un informe almacenado en caché se sustituye por una versión más reciente cuando un usuario selecciona el informe después de que haya expirado la copia en caché anterior.A cached report is replaced with a newer version when a user selects the report after the previously cached copy has expired. Los informes que se hayan configurado para ejecutarse como instancias en caché se quitan de la caché a intervalos regulares, en función de los parámetros de expiración.Reports that are configured to run as cached instances are removed from the cache at regular intervals based on expiration settings. La expiración de un informe se puede establecer en minutos o en un momento programado, según se determina mediante el requisito de inmediatez de los datos.You can set a report's expiration in minutes or at a scheduled time, as determined by the data's immediacy requirement. No se pueden eliminar informes de la caché directamente salvo que se use la API de SOAP.You cannot delete reports from the cache directly unless you use the SOAP API.

Para configurar la expiración de la caché, puede usar una programación compartida o una específica del informe.To configure cache expiration, you can use a shared schedule or report-specific schedule. Si usa una programación compartida y ésta se detiene posteriormente, la caché no expirará mientras la programación no esté operativa.If you use a shared schedule and it is subsequently paused, the cache does not expire while the schedule is inoperative. Si más adelante se elimina la programación compartida, se guardará una copia de la configuración de la programación como programación específica del informe.If the shared schedule is subsequently deleted, a copy of the schedule settings is saved as a report-specific schedule.

Si expira una programación o si deja de estar disponible el motor de programación en la fecha de expiración de la caché, el servidor de informes ejecutará un informe activo hasta que puedan reanudarse las operaciones programadas (ya sea ampliando la programación o iniciando el servicio de programación).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).

Cargar previamente la memoria cachéPreloading the Cache

Para mejorar el rendimiento del servidor, se puede cargar previamente la memoria caché.To improve server performance, you can preload the cache. Puede cargar previamente la memoria caché con una recopilación de instancias del informe parametrizadas de dos maneras:You can preload the cache with a collection of parameterized report instances in two ways:

  1. Cree un plan de actualización de la memoria caché.Create a cache refresh plan. Al crear un plan de actualización, puede especificar una programación para un informe único o especificar una programación compartida.When you create a refresh plan, you can specify a schedule for a single report or specify a shared schedule.

  2. Cree una suscripción controlada por datos que use el proveedor de entrega NULL.Create a data-driven subscription that uses the Null Delivery Provider. Cuando se especifica el proveedor de entrega NULL como método de entrega en la suscripción, el servidor de informes toma la base de datos del servidor de informes como destino de entrega y utiliza una extensión de representación especializada, denominada extensión de representación NULL.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. A diferencia de otras extensiones de entrega, el proveedor de entrega NULL no permite establecer ninguna configuración de entrega mediante una definición de suscripción.In contrast with other delivery extensions, the Null Delivery Provider does not have delivery settings that you can configure through a subscription definition.

    Almacenar en caché un informe resulta especialmente útil si se desea almacenar en caché varias instancias de un informe con parámetros, en el que se utilizan distintos valores de parámetros para generar diferentes instancias de informe.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. Tenga en cuenta que en el informe solamente se pueden especificar parámetros basados en consultas.Note that you can only specify query-based parameters on the report.

    Cuando se especifica una programación o se crea la suscripción controlada por datos, se debe programar la frecuencia con que se entregan los informes en la memoria caché.When you specify a schedule or when you create the data-driven subscription, you schedule how often the reports are delivered to the cache. Para que se entreguen copias nuevas en la memoria caché, las antiguas deben haber expirado.In order for new copies to be delivered to the cache, the old copies must have expired. Por lo tanto, las propiedades de Ejecución del informe se deben configurar de modo que se incluyan parámetros de expiración de la caché.Therefore, the Execution properties of the report must be configured to include cache expiration settings. La configuración de expiración debe ser coherente con la programación definida para la suscripción.The expiration setting must be consistent with the subscription schedule that you define. Por ejemplo, si se crea una suscripción que se ejecute cada noche, la caché también debería expirar cada noche antes de la ejecución de la suscripción.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. Si las propiedades de ejecución no contemplan las horas de expiración, se omitirán las entregas más recientes.If the Execution properties do not include expiration times, newer deliveries are disregarded. Para más información sobre los planes de actualización de la memoria caché, vea Programaciones.For more information about cache refresh plans, see Schedules. Para más información sobre cómo establecer las propiedades, vea Establecer las propiedades de procesamiento de informes.For more information about setting properties, see Set Report Processing Properties. Para más información sobre cómo usar suscripciones controladas por datos, vea Suscripciones controladas por datos.For more information about using data-driven subscriptions, see Data-Driven Subscriptions.

Situaciones que pueden provocar la expiración de la memoria cachéConditions That Cause Cache Expiration

Un informe en caché pierde su validez como consecuencia de las siguientes situaciones: una modificación de la definición de informe o de los parámetros del informe, un cambio de las credenciales del origen de datos o un cambio de las opciones de ejecución del informe.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. Si elimina un informe almacenado en caché, también se elimina la versión en caché.If you delete a report that is stored in the cache, the cached version is also deleted.

Si un informe no puede representarse desde una instancia en caché por cualquier motivo (por ejemplo, si los valores de los parámetros que especifica un usuario son distintos de los que se utilizan para generar el informe en caché), el servidor de informes vuelve a ejecutar el informe.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.

Vea tambiénSee Also

Establecer opciones de procesamiento (Reporting Services en el modo integrado de SharePoint) Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Establecer las propiedades del procesamiento de informes Set Report Processing Properties
Conceptos de Reporting Services (SSRS) Reporting Services Concepts (SSRS)
Cargar previamente la memoria caché (Administrador de informes) Preload the Cache (Report Manager)
Programaciones Schedules
Almacenar en caché conjuntos de datos compartidos (SSRS) Cache Shared Datasets (SSRS)
Opciones de actualización de memoria caché (Administrador de informes) Cache Refresh Options (Report Manager)