Mise en cache de rapports (SSRS)Caching Reports (SSRS)

Un serveur de rapports peut mettre en mémoire cache la copie d'un rapport traité et retourner cette copie lorsqu'un utilisateur ouvre le rapport.A report server can cache a copy of a processed report and return that copy when a user opens the report. Pour cet utilisateur, la date et l'heure de l'exécution du rapport sont les seules informations qui lui permettent de savoir que ce rapport est une copie en cache.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 date ou l'heure n'est pas celle en cours et que le rapport n'est pas un instantané, ceci signifie que le rapport a été extrait du cache.If the date or time is not current and the report is not a snapshot, the report was retrieved from cache.

La mise en cache peut raccourcir le temps nécessaire à la récupération d'un rapport si celui-ci est volumineux ou fréquemment consulté.Caching can shorten the time required to retrieve a report if the report is large or accessed frequently. Si le serveur est redémarré, toutes les instances mises en cache sont réintégrées lorsque le service Web Report Server revient en ligne.If the server is rebooted, all cached instances are reinstated when the Report Server Web service comes back online.

La mise en cache est une technique d'optimisation des performances.Caching is a performance-enhancement technique. Le contenu du cache est volatile et peut changer à mesure que les rapports sont ajoutés, remplacés ou supprimés.The contents of the cache are volatile and can change as reports are added, replaced, or removed. Si vous avez besoin d'une stratégie de mise en cache moins aléatoire, créez un instantané de rapport.If you require a more predictable caching strategy, you should create a report snapshot. Pour plus d’informations, consultez Définir les propriétés de traitement d’un rapport.For more information, see Set Report Processing Properties.

Note

Reporting ServicesReporting Services stocke les fichiers temporaires dans une base de données afin de prendre en charge les sessions utilisateur et le traitement des rapports. Reporting ServicesReporting Services stores temporary files in a database to support user sessions and report processing. Ces fichiers sont mis en cache pour être utilisés en interne et pour assurer un affichage constant durant une même session de navigateur.These files are cached for internal use and to support a consistent viewing experience during a single browser session. Pour plus d’informations sur la façon dont les fichiers temporaires à usage interne sont mis en cache, consultez Base de données du serveur de rapports (SSRS en mode natif).For more information about how internal-use temporary files are cached, see Report Server Database (SSRS Native Mode).

Instances mises en cacheCached Instances

L'instance mise en cache d'un rapport est basée sur le format intermédiaire d'un rapport.A cached instance of a report is based on the intermediate format of a report. Le serveur de rapports met généralement en cache l'instance d'un rapport sur la base du nom du rapport.The report server generally caches one instance of a report based on the report name. Si toutefois un rapport peut contenir des données différentes basées sur des paramètres de requête, plusieurs versions du rapport peuvent être mises en cache à un moment donné.However, if a report can contain different data based on query parameters, multiple versions of the report may be cached at any given time. Supposons, par exemple, que vous disposez d'un rapport paramétrable qui prend un code de région en tant que valeur de paramètre.For example, suppose you have a parameterized report that takes a region code as a parameter value. Si quatre utilisateurs différents spécifient quatre codes de région différents, quatre copies mises en cache sont créées.If four different users specify four unique region codes, four cached copies are created.

Le premier utilisateur qui exécute le rapport avec un code de région unique crée un rapport mis en cache contenant des données pour cette région.The first user who runs the report with a unique region code creates a cached report that contains data for that region. Les utilisateurs suivants qui demandent le rapport en utilisant le même code de région obtiennent la copie mise en cache.Subsequent users who request the report using the same region code get the cached copy.

Les rapports ne peuvent pas tous être mis en cache.Not all reports can be cached. Par exemple, les rapports qui contiennent des données tributaires de l'utilisateur, ceux qui nécessitent la saisie d'informations d'identification par l'utilisateur ou encore ceux qui utilisent l'authentification Windows.If a report includes user-dependent data, prompts users for credentials, or uses Windows Authentication, it cannot be cached.

Actualisation du cacheRefreshing the Cache

La nouvelle version d'un rapport est substituée à l'exemplaire mis en cache lorsqu'un utilisateur sélectionne le rapport après l'expiration de la copie précédemment chargée dans la mémoire.A cached report is replaced with a newer version when a user selects the report after the previously cached copy has expired. Les rapports configurés pour s'exécuter en tant qu'instances en cache sont supprimés du cache à intervalles réguliers, conformément aux paramètres d'expiration définis.Reports that are configured to run as cached instances are removed from the cache at regular intervals based on expiration settings. Vous pouvez choisir le mode d'expiration d'un rapport, en minutes ou à une heure planifiée, selon les conditions dictées par le caractère urgent des données.You can set a report's expiration in minutes or at a scheduled time, as determined by the data's immediacy requirement. Vous ne pouvez pas supprimer directement un rapport du cache, à moins d'utiliser l'interface API SOAP.You cannot delete reports from the cache directly unless you use the SOAP API.

Pour configurer l'expiration du cache, utilisez une planification partagée ou propre au rapport.To configure cache expiration, you can use a shared schedule or report-specific schedule. Si vous utilisez une planification partagée qui est suspendue, le cache n'arrive pas à expiration tant que la planification n'est pas active.If you use a shared schedule and it is subsequently paused, the cache does not expire while the schedule is inoperative. Si la planification partagée est supprimée, une copie des paramètres de planification est enregistrée en tant que planification propre au rapport.If the shared schedule is subsequently deleted, a copy of the schedule settings is saved as a report-specific schedule.

Si une planification arrive à expiration ou si le moteur de planification n'est pas disponible à la date d'expiration du cache, le serveur de rapports exécute un rapport en direct jusqu'à ce que les opérations planifiées puissent reprendre (soit en étendant la planification, soit en démarrant le service de planification).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).

Préchargement du cachePreloading the Cache

Pour améliorer les performances d'un serveur, préchargez le cache.To improve server performance, you can preload the cache. Vous pouvez précharger le cache avec une collection d'instances de rapport paramétrable de deux façons :You can preload the cache with a collection of parameterized report instances in two ways:

  1. Créez un plan d'actualisation du cache.Create a cache refresh plan. Lorsque vous créez un plan d'actualisation, vous pouvez spécifier une planification pour un rapport unique ou spécifier une planification partagée.When you create a refresh plan, you can specify a schedule for a single report or specify a shared schedule.

  2. Créez un abonnement piloté par les données qui utilise le fournisseur de remise Null.Create a data-driven subscription that uses the Null Delivery Provider. Lorsque vous spécifiez le fournisseur de remise Null comme méthode de remise dans l'abonnement, le serveur de rapports cible la base de données du serveur de rapports comme destination de remise et utilise une extension de rendu particulière du nom d'extension de rendu 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. À la différence des autres extensions de remise, le fournisseur de remise Null ne propose aucun paramètre de remise configurable par le biais d'une définition d'abonnement.In contrast with other delivery extensions, the Null Delivery Provider does not have delivery settings that you can configure through a subscription definition.

    La mise en cache d'un rapport est particulièrement utile si vous souhaitez mettre en cache plusieurs instances d'un rapport paramétrable dans lesquelles différentes valeurs de paramètres sont utilisées pour produire différentes instances de rapport.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. Notez que vous ne pouvez spécifier que des paramètres reposant sur des requêtes dans le rapport.Note that you can only specify query-based parameters on the report.

    Lorsque vous spécifiez une planification ou créez l'abonnement piloté par les données, vous devez planifier la fréquence de remise de ces rapports dans le cache.When you specify a schedule or when you create the data-driven subscription, you schedule how often the reports are delivered to the cache. Ces copies de rapports doivent avoir expiré pour que de nouveaux exemplaires les remplacent dans le cache.In order for new copies to be delivered to the cache, the old copies must have expired. Ainsi, les propriétés d'exécution du rapport doivent être configurées pour englober les paramètres d'expiration du cache.Therefore, the Execution properties of the report must be configured to include cache expiration settings. Les valeurs de ces paramètres doivent tenir compte de la planification de l'abonnement que vous définissez.The expiration setting must be consistent with the subscription schedule that you define. De fait, si vous créez un abonnement qui s'exécute chaque nuit, le cache doit également expirer chaque nuit, avant l'heure d'exécution de l'abonnement.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 les propriétés d'exécution n'incluent aucune limite d'expiration, les remises plus récentes sont ignorées.If the Execution properties do not include expiration times, newer deliveries are disregarded. Pour plus d’informations sur les plans d’actualisation du cache, consultez Planifications.For more information about cache refresh plans, see Schedules. Pour plus d’informations sur la définition des propriétés, consultez Définir les propriétés de traitement d’un rapport.For more information about setting properties, see Set Report Processing Properties. Pour plus d’informations sur l’utilisation des abonnements pilotés par les données, consultez Abonnements pilotés par les données.For more information about using data-driven subscriptions, see Data-Driven Subscriptions.

Conditions entraînant l’expiration du cacheConditions That Cause Cache Expiration

Un rapport mis en cache peut être invalidé si les événements suivants se produisent : la définition du rapport est modifiée, les paramètres de rapport sont modifiés, les informations d'identification de la source de données sont modifiées ou les options d'exécution du rapport sont modifiées.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 vous supprimez un rapport stocké dans le cache, la version mise en cache disparaît également.If you delete a report that is stored in the cache, the cached version is also deleted.

Si un rapport ne peut pas faire l'objet d'un rendu à partir d'une instance mise en cache pour une raison quelconque (par exemple, si les valeurs de paramètres spécifiées par un utilisateur sont différentes de celles utilisées pour produire le rapport mis en cache), le serveur de rapports réexécute le rapport.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.

Voir aussiSee Also

Définir les options de traitement (Reporting Services en mode intégré SharePoint) Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Définir les propriétés de traitement d’un rapport Set Report Processing Properties
Concepts de Reporting Services (SSRS) Reporting Services Concepts (SSRS)
Précharger le cache (Gestionnaire de rapports) Preload the Cache (Report Manager)
Planifications Schedules
Mettre en cache les datasets partagés (SSRS) Cache Shared Datasets (SSRS)
Options d’actualisation du cache (Gestionnaire de rapports) Cache Refresh Options (Report Manager)