SSRS - Hors MemoryException - est-il une limite au nombre de lignes qui peuvent être affichés
J'ai créé un fichier rdl doc qui pointe à un proc qui renvoie à 90 000 lignes et je suis un souvenir d'exception. Est-il une limite au nombre de lignes du rapport des projets peut-il gérer?
Actuellement, j'ai changé le proc que les lecteurs de mon rapport à il suffit de sélectionner le Dessus de 90 000. Mes caractéristiques sont d'être capable de créer un rapport avec 120 000 lignes. Mon rapport est une matrice.
Je vous jure, la semaine dernière, j'ai généré un rapport qui a 106800 lignes, mais maintenant tout d'un coup je ne peux pas.
J'ai écrit une extension de rendu et voici une partie de l'exception lorsque j'entre dans le code.
eInfo: 2/12/2009 12:03:53
PM prairieFyre.ReportActions.RenderReport: Erreur de rendu du rapport
Microsoft.La production de rapports.WinForms.LocalProcessingException: Une erreur
s'est produite pendant le local de traitement de rapport. --->
Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:
Une erreur inattendue s'est produite dans le Traitement du Rapport. --->
Système.OutOfMemoryException: une Exception de type
'Système.OutOfMemoryException " a été levée. au
Système.IO.MemoryStream.set_Capacity(Int32 valeur), à
Système.IO.MemoryStream.EnsureCapacity(Int32 valeur), à
Système.IO.MemoryStream.Write(Byte[] buffer, Int32 décalage, Int32 nombre)
au Système.IO.BinaryWriter.Écrire(Chaîne de valeur), à
Microsoft.ReportingServices.ReportProcessing.Persistence.IntermediateFormatWriter.ReportServerBinaryWriter.WriteString(Chaîne
stringValue) ....
OriginalL'auteur | 2009-02-12
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas qu'il y a une limitation, autres que la configuration de votre matériel. Si votre sur une machine 32 bits le processus de travail qui est le traitement de cette a moins de 2 go de mémoire pour fonctionner avec, probablement plus proche de 1 gigaoctet quand vous facteur dans la mémoire en mode noyau. Si vous allez à être au service de grands rapports de ce genre, vous avez probablement besoin d'une installation 64 bits avec au moins 4 go de mémoire ou plus sur la boîte. Cette configuration permettra de le processus de travail pour allouer plus de 2 go de mémoire utilisable pour effectuer ces grandes demandes sans problème.
Si une mise à jour du matériel n'est pas une option, vous pouvez également tenir compte de ces alternatives.
Vous dit que le rapport est un rapport de matrice de sorte qu'il semble que vous n'êtes pas d'afficher toutes les données de l'utilisateur, mais les regrouper. Pourriez-vous pré-regrouper certaines de ces données dans la base de données puis il suffit d'utiliser SSRS pour l'affichage?
Depuis le rapport est rien de plus qu'un fichier XML, construire le rapport de la chaîne XML dans SQL server ou par l'aide d'un script ou d'un processus. Cela peut être beaucoup de travail.
OriginalL'auteur James
La pile indique que le MemoryStream utilisé pour conserver le rapport du résultat d'exécution ne peut pas augmenter (double) c'est la taille.
Ce problème est généralement causé par l'adresse de la fragmentation de l'espace, qui souvent ne peut être résolu par l'ajout de matériel.
Microsoft ReportViewer est limité dans la quantité de données qu'il peut, car elle est conçue pour enregistrer le rapport intermédiaire du résultat d'exécution dans un MemoryStream qui, malheureusement, a besoin d'un quadratiquement de plus en plus de contiguë libre de l'espace d'adresse, qui en a l'habitude .NET application (2 go d'espace d'adressage) n'est pas plus gros que 256 mo de mémoire, et souvent bien plus que cela.
Dans ce flux, par exemple, toutes les valeurs de champ, les valeurs agrégées, les expressions et les images sont stockées, de sorte que la taille dépend directement de la taille des ensembles de données ont été ajoutés au rapport.
Pour analyser l'adresse de l'espace et des objets, de .NET application, il est préférable de déboguer avec WinDBG (Outils de Débogage pour Windows) et le SOS des extensions.
Précieux commandes pour analyser le problème de la fragmentation sont:
Dans ce cas particulier, il peut être possible de réduire la quantité de données en pré-agrégation des valeurs déjà dans la source de données et non dans la Matrice.
Autres conseils sont donnés par l'article de Base de Connaissances ", Vous pouvez recevoir le Système.OutOfMemoryException' message d'erreur lorsque vous utilisez SQL Server Reporting Services" [1].
[1]: http://support.microsoft.com/kb/909678 "du Système.OutOfMemoryException" message d'erreur lorsque vous utilisez SQL Server Reporting Services
OriginalL'auteur user33675
Vérifier que votre interactiveHeight propriété n'est pas définie à 0.
http://bidn.com/blogs/MMilligan/bidn-blog/2903/ssrs-gotcha-interactiveheight=0
Ce lié a aidé à m'en sortir, chose étrange, sur mon rapport que j'ai eu à régler la hauteur interactive en particulier à 0. Donc, autrement autour de, mais il a aidé.
OriginalL'auteur Mike Milligan