Größenbeschränkungen für Berichte und Snapshots

Administratoren, die eine Reporting Services-Bereitstellung verwalten, können mit den Informationen in diesem Thema mehr zu Größenbeschränkungen für einen Bericht erfahren, wenn der Bericht auf einem Berichtsserver veröffentlicht, zur Laufzeit gerendert und in einem Dateisystem gespeichert wird. In diesem Thema erhalten Sie zudem eine praktische Anleitung zum Ermitteln der Größe einer Berichtsserver-Datenbank und eine Beschreibung zur Auswirkung der Größe von Snapshots auf die Serverleistung.

Maximale Größe für veröffentlichte Berichte und Modelle

Auf dem Berichtsserver basiert die Größe von Berichten und Modellen auf der Größe der Berichtsdefinitionsdateien (RDL) und Berichtsmodelldateien (SMD), die Sie auf einem Berichtsserver veröffentlichen. Die Größe eines von Ihnen veröffentlichten Berichts oder Modells wird nicht vom Berichtsserver beschränkt. MicrosoftASP.NET erzwingt jedoch eine maximale Größe für Elemente, die an den Server gesendet werden. Standardmäßig liegt dieser Höchstwert bei 4 MB. Wenn Sie auf einem Berichtsserver eine Datei hochladen oder veröffentlichen, die diesen Höchstwert überschreitet, wird ein HTTP-Ausnahmefehler gemeldet. In diesem Fall können Sie den Standardwert ändern, indem Sie den Wert des Elements maxRequestLength in der Datei Machine.config erhöhen.

Obwohl ein Berichtsmodell sehr groß sein kann, wird für Berichtsdefinition die Größe von 4 MB nur selten überschritten. Die Größe von Berichten liegt in der Regel im Bereich von Kilobytes (KB). Wenn Sie jedoch eingebettete Bilder einbeziehen, kann die Codierung dieser Bilder zu umfangreichen Berichtsdefinitionen führen, die den 4 MB-Grenzwert übersteigen.

ASP.NET erzwingt einen Grenzwert für bereitgestellte Dateien, um das Risiko von Denial-of-Service-Angriffen auf den Server zu reduzieren. Durch einen höheren Grenzwert wird dieser Schutz teilweise unterlaufen. Erhöhen Sie den Wert nur, wenn Sie sicher sind, dass die Vorteile etwaige zusätzliche Sicherheitsrisiken aufwiegen.

Berichtsgröße im Arbeitsspeicher

Wenn Sie einen Bericht ausführen, entspricht die Größe des Berichts der im Bericht zurückgegebenen Datenmenge zuzüglich der Größe des Ausgabedatenstroms. Von Reporting Services wird kein Grenzwert für die Größe eines gerenderten Berichts erzwungen. Der obere Grenzwert für die Größe wird vom Systemarbeitsspeicher bestimmt (ein Berichtsserver verwendet beim Rendern eines Berichts standardmäßig den gesamten verfügbaren konfigurierten Arbeitsspeicher). Sie können jedoch Konfigurationseinstellungen festlegen, um Grenzwerte für den Arbeitsspeicher und Speicherverwaltungsrichtlinien zu definieren. Weitere Informationen finden Sie unter Konfigurieren des verfügbaren Arbeitsspeichers für Berichtsserveranwendungen.

Die Größe der einzelnen Berichte kann sich beträchtlich unterscheiden. Dies hängt von der zurückgegebenen Datenmenge und vom Renderingformat ab, das Sie für den Bericht verwenden. Ein parametrisierter Bericht kann abhängig von der Auswirkung der Parameterwerte auf die Abfrageergebnisse größer oder kleiner sein. Das von Ihnen ausgewählte Ausgabeformat des Berichts wirkt sich folgendermaßen auf die Größe des Berichts aus:

  • Der Bericht wird von HTML seitenweise verarbeitet. Da der Bericht in kleineren Einheiten verarbeitet wird, ist zum Verarbeiten bestimmter Segmente weniger Arbeitsspeicher erforderlich.

  • Von PDF, Excel, TIFF und CSV wird der gesamte Bericht im Arbeitsspeicher verarbeitet, bevor der Bericht dem Benutzer angezeigt wird.

Sie können das Berichtsausführungsprotokoll anzeigen, um die Größe eines gerenderten Berichts zu ermitteln. Weitere Informationen finden Sie unter Berichtsserver-Ausführungsprotokoll.

Wenn Sie die Größe eines gerenderten Berichts auf einem Datenträger berechnen möchten, können Sie den Bericht exportieren und anschließend im Dateisystem speichern (die gespeicherte Datei enthält Informationen zu den Daten und zur Formatierung des Berichts).

Der einzige feste Grenzwert für die Größe von Berichten besteht beim Rendern in das Excel-Format. Arbeitsblätter dürfen maximal 65536 Zeilen oder 256 Spalten enthalten. Bei anderen Renderingformaten bestehen diese Beschränkungen nicht. Die Größe wird daher nur durch die Anzahl der Ressourcen auf dem Server beschränkt. Weitere Informationen zu Grenzwerten für Excel-Dateien finden Sie unter Exportieren nach Microsoft Excel.)

HinweisHinweis

Die Verarbeitung und das Rendern von Berichten erfolgt nur im Arbeitsspeicher. Wenn Sie über umfangreiche Berichte oder eine große Anzahl von Benutzern verfügen, sollten Sie eine Kapazitätsplanung vornehmen, um sicherzustellen, dass die Berichtsserverbereitstellung auf einem für die Benutzer zufrieden stellenden Niveau ausgeführt wird. Weitere Informationen zu Tools und Richtlinien stehen in den folgenden Publikationen auf MSDN zur Verfügung: Planning for Scalability and Performance with Reporting Services und Using Visual Studio 2005 to Perform Load Testing on a SQL Server 2005 Reporting Services Report Server.

Messen des Speichers für Snapshots

Die Größe eines Snapshots ist direkt proportional zur Datenmenge im Bericht. Snapshots sind in der Regel viel größer als andere Elemente, die auf einem Berichtsserver gespeichert sind. Die Größe von Snapshots liegt in der Regel zwischen einigen Megabyte und mehreren zehn Megabyte. Wenn Sie über umfangreiche Berichte verfügen, können Sie davon ausgehen, dass die Snapshots noch größer sind. Je nachdem, wie häufig Sie Snapshots verwenden und wie Sie den Berichtsverlauf konfigurieren, kann sich der für die Berichtsserver-Datenbank erforderliche Speicherplatz innerhalb eines kurzen Zeitraums schnell erhöhen.

Standardmäßig sind die Datenbanken reportserver und reportservertempdb so festgelegt, dass eine automatische Vergrößerung erfolgt. Obwohl sich die Datenbankgröße automatisch erhöhen kann, kann sie sich nicht automatisch verringern. Wenn für die reportserver-Datenbank zusätzliche Kapazitäten zur Verfügung stehen, da Sie Snapshots gelöscht haben, müssen Sie die Größe manuell reduzieren, um Speicherplatz zu gewinnen. Wenn sich die Größe der reportservertempdb-Datenbank erhöht, da eine ungewöhnlich große Anzahl von interaktiven Berichten aufgenommen wurde, bleibt diese Einstellung für die Speicherplatzzuordnung entsprechend erhalten, bis Sie sie reduzieren.

Sie können die folgenden Transact-SQL-Befehle ausführen, um die Größe der Berichtsserver-Datenbanken zu ermitteln. Durch regelmäßiges Berechnen der Gesamtgröße von Datenbanken können Sie im Verlauf der Zeit entsprechende Schätzungen zur Zuordnung von Speicherplatz für die Berichtsserver-Datenbank vornehmen. Mit den folgenden Anweisungen wird der derzeit verwendete Speicherplatz ermittelt (bei den Anweisungen wird davon ausgegangen, dass Sie Standarddatenbanknamen verwenden):

USE ReportServer
EXEC sp_spaceused

Snapshotgröße und Berichtsserverleistung

Die Snapshotgröße wirkt sich auf die Serverleistung aus, wenn der Bericht verarbeitet und gerendert wird. Renderingvorgänge wirken sich am stärksten auf die Serverleistung aus. Daher können bei einem großen Snapshot Verzögerungen auftreten, wenn Benutzer den Bericht anfordern. In Abhängigkeit von der Anzahl der Benutzer können Verzögerungen auftreten, wenn die Snapshotgröße 100 Megabyte übersteigt.

Gehen Sie folgendermaßen vor, um die Leistungsverzögerungen aufgrund umfangreicher Snapshots zu minimieren:

  • Stellen Sie den Berichtsserver und den SQL Server Database Engine (Datenbankmodul) auf separaten Computern bereit.

  • Fügen Sie weiteren Systemarbeitsspeicher hinzu.

  • Lesen Sie das Dokument "Planning for Scalability and Performance with Reporting Services" (auf Englisch) auf der MSDN-Website, um Informationen zu den bewährten Methoden zum Konfigurieren eines Berichtsservers für Unternehmen zu erhalten.

Die Menge der in einer Berichtsserver-Datenbank gespeicherten Snapshots stellt an sich keinen Leistungsfaktor dar. Sie können eine große Anzahl von Snapshots speichern, ohne die Serverleistung zu beeinträchtigen. Sie können Snapshots über einen unbegrenzten Zeitraum speichern. Beachten Sie jedoch, dass der Berichtsverlauf konfiguriert werden kann. Wenn ein Berichtsserveradministrator den Grenzwert für den Berichtsverlauf senkt, gehen Berichtsverläufe, die Sie aufbewahren möchten, möglicherweise verloren. Wenn Sie den Bericht löschen, wird auch der gesamte Berichtsverlauf gelöscht. Weitere Informationen zu alternativen Vorgehensweisen beim Archivieren von Berichten finden Sie unter Speichern von Berichten.