Mettre en cache les rapports (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. 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. Si la date ou l’heure n’est actuelle et que le rapport n’est pas un instantané, ceci signifie que le rapport a été extrait du 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é. 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.
La mise en cache est une technique d'optimisation des performances. Le contenu du cache est volatile et peut changer à mesure que les rapports sont ajoutés, remplacés ou supprimés. Si vous avez besoin d'une stratégie de mise en cache moins aléatoire, créez un instantané de rapport. Pour plus d’informations, consultez Définir les propriétés de traitement d’un rapport.
Notes
Reporting Services stocke les fichiers temporaires dans une base de données afin de prendre en charge les sessions utilisateur et le traitement des rapports. 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. 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).
Instances mises en cache
L'instance mise en cache d'un rapport est basée sur le format intermédiaire d'un rapport. Le serveur de rapports met généralement en cache l'instance d'un rapport sur la base du nom du rapport. 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é. 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. Si quatre utilisateurs différents spécifient quatre codes de région différents, quatre copies mises en cache sont créées.
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. Les utilisateurs suivants qui demandent le rapport en utilisant le même code de région obtiennent la copie mise en cache.
Les rapports ne peuvent pas tous être mis en cache. Si un rapport contient des données dépendantes de l’utilisateur, invite les utilisateurs à saisir des identifiants ou utilise l’authentification Windows, il ne peut pas être mis en cache.
Actualiser le 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 mise en cache. 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. 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. Vous ne pouvez pas supprimer directement un rapport du cache, à moins d’utiliser l’interface API SOAP.
Pour configurer l'expiration du cache, utilisez une planification partagée ou propre au rapport. Si vous utilisez une planification partagée et que celle-ci est ensuite suspendue, le cache n’expire pas tant que la planification est inactive. Si la planification partagée est supprimée ultérieurement, une copie des paramètres de la planification est enregistrée en tant que planification spécifique au rapport.
Si une planification expire ou si le moteur de planification n’est pas disponible à une date d’expiration du cache, le serveur de rapports exécute un rapport en direct. Cette action se poursuit jusqu’à ce que les opérations planifiées puissent être reprises. Les opérations planifiées peuvent être reprises lorsque vous étendez la planification ou démarrez le service de planification.
Précharger le cache
Pour améliorer les performances d'un serveur, préchargez le cache. Vous pouvez précharger le cache avec une collection d'instances de rapport paramétrable de deux façons :
Créez un plan d'actualisation du cache. 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.
Créez un abonnement piloté par les données qui utilise le fournisseur de remise Null. 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. Le serveur utilise une extension de rendu spécialisée appelée extension de rendu Null. À 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.
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. Seuls les paramètres basés sur des requêtes peuvent être spécifiés dans le rapport.
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. Pour que de nouvelles copies soient livrées au cache, les anciennes copies doivent avoir expiré. Ainsi, les propriétés d'exécution du rapport doivent être configurées pour englober les paramètres d'expiration du cache. Les valeurs de ces paramètres doivent tenir compte de la planification de l'abonnement que vous définissez. 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. Si les propriétés d’exécution n’incluent aucune limite d’expiration, les remises plus récentes sont ignorées. Pour plus d’informations sur les plans d’actualisation du cache, consultez Planifications. Pour plus d’informations sur la définition des propriétés, consultez Définir les propriétés de traitement d’un rapport. Pour plus d’informations sur l’utilisation des abonnements pilotés par les données, consultez Abonnements pilotés par les données.
Conditions entraînant l’expiration du cache
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. Si vous supprimez un rapport stocké dans le cache, la version mise en cache disparaît également.
Si un rapport ne peut pas être rendu à partir d’une instance mise en cache pour une raison quelconque, le serveur de rapports réexécute le rapport. Cette action garantit que le rapport est généré avec les valeurs de paramètre correctes et mises à jour.