Limites de taille des captures instantanées et des rapports

Mis à jour : 14 avril 2006

Les administrateurs qui gèrent un déploiement de Reporting Services peuvent utiliser les informations figurant dans cette rubrique pour comprendre les limites de taille lorsque le rapport est publié sur un serveur de rapports, rendu lors de l'exécution, puis enregistré dans le système de fichiers. Cette rubrique fournit également des conseils pratiques expliquant comment mesurer la taille d'une base de données de serveur de rapports, et elle décrit l'incidence de la taille des captures instantanées sur les performances des serveurs.

Taille maximale des modèles et des rapports publiés

Sur le serveur de rapports, la taille des modèles et des rapports repose sur la taille des fichiers de définition de rapport (.rdl) et de modèle de rapport (.smdl) que vous publiez sur un serveur de rapports. Le serveur de rapports ne limite pas la taille du rapport ou du modèle que vous publiez. Toutefois, Microsoft ASP.NET impose une taille maximale pour les éléments qui sont publiés sur le serveur. La valeur par défaut est 4 mégaoctets (Mo). Si vous téléchargez ou publiez sur un serveur de rapports un fichier dont la taille est supérieure à cette limite, vous recevez une exception HTTP. Dans ce cas, vous pouvez modifier le paramétrage par défaut en augmentant la valeur de l'élément maxRequestLength dans le fichier Machine.config.

Bien qu'un modèle de rapport puisse être très volumineux, la taille des définitions de rapport excède rarement 4 Mo. Le plus souvent, la taille d'un rapport se mesure en kilo-octets (Ko). Cependant, si vous incluez des images incorporées, le codage de ces images peut générer des définitions de rapports volumineuses qui dépassent la taille par défaut de 4 Mo.

ASP.NET impose une limite maximale aux fichiers publiés pour minimiser les attaques par déni de service lancées à l'encontre du serveur. L'augmentation de la valeur de la limite supérieure amoindrit une partie de la protection que cette limite fournit. Augmentez cette valeur uniquement si vous êtes certain que l'avantage de cette opération compense tout risque de sécurité éventuel.

Taille de rapport en mémoire

Lorsque vous exécutez un rapport, la taille du rapport est égale à la quantité de données qui est retournée dans le rapport plus la taille du flux de sortie. Reporting Services n'impose pas de limite maximale sur la taille d'un rapport rendu. La mémoire système détermine la limite de taille maximale (un serveur de rapports utilise toute la mémoire configurée disponible lors du rendu d'un rapport). Par défaut, la mémoire configurée disponible est définie à 60 %. Pour modifier les limites de mémoire du service Web Report Server, définissez le paramètre de configuration memoryLimit dans la section processModel du fichier Machine.config. Pour modifier les limites de mémoire du service Windows Report Server, définissez le paramètre memoryLimit dans le fichier RSReportServer.config. Pour plus d'informations sur les limites de mémoire concernant le service Windows Report Server, consultez Configuration de la mémoire disponible pour Reporting Services.

La taille d'un rapport peut varier considérablement selon la quantité de données retournées et le format de rendu que vous utilisez pour le rapport. Un rapport paramétré peut être plus ou moins volumineux en fonction de l'incidence des valeurs des paramètres sur les résultats des requêtes. Le format de sortie de rapport que vous choisissez affecte la taille des rapports comme suit :

  • Le format HTML traite le rapport une page à la fois. Dans la mesure où le rapport est traité en unités de petite taille, la mémoire requise pour traiter des blocs spécifiques est moindre.
  • Les formats PDF, Excel, TIFF, XML et CSV traitent tout le rapport en mémoire avant de l'afficher aux yeux de l'utilisateur.

Pour mesurer la taille d'un rapport rendu, vous pouvez afficher le journal d'exécution du rapport. Pour plus d'informations, consultez Journal d'exécution du serveur de rapports.

Pour calculer la taille d'un rapport rendu sur disque, exportez-le vers le système de fichiers puis enregistrez-le (le fichier enregistré inclut des informations de mise en forme des données et du rapport).

La seule limite physique sur la taille du rapport s'applique lors du rendu au format Excel. Les feuilles de calcul ne peuvent pas contenir plus de 65 536 lignes ou 256 colonnes. D'autres formats de rendu ne sont pas soumis à ces limites, par conséquent, la taille est limitée uniquement par la quantité de ressources sur votre serveur.

ms156002.note(fr-fr,SQL.90).gifRemarque :
Le traitement et le rendu d'un rapport sont opérés en mémoire. Si vous possédez des rapports volumineux ou un grand nombre d'utilisateurs, veillez à réaliser une planification de capacité pour vous assurer que vos utilisateurs sont satisfaits des performances de votre déploiement de serveur de rapports. Pour plus d'informations, recherchez « Planning for Scalability and Performance with Reporting Services » (en anglais) sur le site Web MSDN.

Mesure du stockage des captures instantanées

La taille d'une capture instantanée est directement proportionnelle à la quantité de données dans le rapport. Les captures instantanées sont généralement bien plus volumineuses que les autres éléments stockés sur un serveur de rapports. Leur taille oscille généralement entre quelques mégaoctets et des dizaines de mégaoctets. Si vos rapports sont extrêmement volumineux, il est probable que les captures instantanées le seront encore plus. En fonction de la fréquence d'utilisation des captures instantanées et de la configuration de l'historique des rapports, la quantité d'espace disque requise par la base de données du serveur de rapports peut augmenter rapidement en peu de temps.

Par défaut, les bases de données reportserver et reportservertempdb sont configurées pour permettre une croissance automatique. La taille d'une base de données peut augmenter automatiquement, mais elle ne peut en aucun cas diminuer automatiquement. Si la base de données reportserver dispose d'une capacité excédentaire car vous avez supprimé des captures instantanées, vous devez la réduire manuellement pour récupérer de l'espace sur le disque. De même, si la taille de la base de données reportservertempdb a augmenté pour gérer un volume anormalement élevé de rapports interactifs, l'allocation de l'espace disque restera à ce paramètre tant que vous ne l'aurez pas diminué.

Pour mesurer la taille des bases de données du serveur de rapports, vous pouvez exécuter les commandes Transact-SQL suivantes. Si vous calculez régulièrement la taille totale des bases de données, vous pourrez évaluer avec justesse comment allouer au fur et à mesure de l'espace à la base de données du serveur de rapports. Les instructions suivantes mesurent la quantité d'espace actuellement utilisée (les instructions partent du principe que vous utilisez les noms de base de données par défaut) :

USE ReportServer
EXEC sp_spaceused

Taille des captures instantanées et performances des serveurs de rapports

La taille des captures instantanées a une incidence sur les performances du serveur lorsque le rapport est traité puis rendu. Ce sont les opérations de rendu qui affectent le plus les performances du serveur. Par conséquent, si vous disposez d'une capture instantanée volumineuse, un délai interviendra lorsque les utilisateurs demanderont le rapport. En fonction du nombre d'utilisateurs, des délais sont à prévoir lorsque la taille d'une capture instantanée dépasse 100 mégaoctets.

Pour minimiser les retards de performances en raison de captures instantanées volumineuses, vous pouvez :

  • déployer le serveur de rapports et le moteur de base de données SQL Server sur des ordinateurs distincts ;
  • ajouter davantage de mémoire système ;
  • consulter le document « Planning for Scalability and Performance with Reporting Services » sur le site Web MSDN pour des recommandations concernant la configuration d'un serveur de rapports pour l'entreprise.

La quantité de captures instantanées qui est stockée dans une base de données de serveur de rapports n'est pas, en soi, un facteur de performances. Vous pouvez stocker un grand nombre de captures instantanées sans aucune incidence sur les performances. Vous pouvez conserver les captures instantanées indéfiniment. Sachez cependant que l'historique de rapport est configurable. Si un administrateur de serveur de rapports abaisse la limite de l'historique de rapport, vous risquez de perdre des rapports que vous comptiez garder. Si vous supprimez le rapport, tout l'historique est également supprimé. Pour plus d'informations sur d'autres approches de l'archivage des rapports, consultez Enregistrement des rapports.

Voir aussi

Concepts

Définition des propriétés d'exécution d'un rapport
Configuration des propriétés de l'historique de rapport
Base de données de Report Server
Traitement des rapports volumineux
Exportation des rapports
Enregistrement des rapports
Rapports et définitions de rapport

Autres ressources

Gestion du traitement des rapports

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Contenu modifié :
  • Taille des captures instantanées et performances des serveurs de rapports, et incidence de la taille des captures instantanées sur les bases de données de serveur de rapports.