Member
Beiträge: 16
| Hallo,
in Ergänzung zu meinem Post "A365: Berichtaufruf wird immer langsamer" aus dem Juni hat sich noch eine weitere, neue Problematik ergeben.
In unserer Access-Anwendung werden durch eine Routine sehr viele Belege in Folge erzeugt und ausgedruckt bzw. per E-Mail (PDF-Anhang) verschickt. Also ein Bericht wird geöffnet und dann wird mittels OutputTo eine PDF-Datei erstellt. Anschließend wird der Bericht wieder geschlossen.
Das Problem, dass alleine das fortgesetzte Öffnen und Schließen eines Berichts mit der Zeit immer langsamer wird, konnte ja zum Glück recht schnell mit dem Build 2406 behoben werden und hat diese Routine wieder deutlich spürbar beschleunigt.
Jetzt fällt allerdings auf, dass die oben beschrieben Routine trotzdem noch mit der Zeit immer langsamer wird.
Nach diversen Tests habe ich nun einschränken können, dass der häufige Aufruf der Methode "OutputTo" für einen Bericht mit der Zeit Access zunehmend erlahmen lässt. Dabei ist allerdings auch entscheidend, wie viele Unterberichte in dem Bericht enthalten sind. Je mehr Unterberichte vorhanden sind, desto schneller geht die Performance in den Keller. Dieser Effekt scheint sich in Access auch wieder festzufressen, denn die ursprüngliche Performance wird erst wieder erreicht, wenn Access neu gestartet wird.
Während OutputTo anfangs in meinem Fall in etwa 200ms erledigt ist, dauert das nach etwa 400 Belegen schon spürbare 530ms. Je mehr Unterberichte aus dem Bericht entfernt werden, desto weiter reduziert sich der Zeitverlust mit OutputTo. Ohne Unterberichte ist überhaupt kein Performanceverlust feststellbar, zumindest nicht in meinem Messbereich.
Es scheint dabei unerheblich zu sein, ob die Unterberichte tatsächlich etwas drucken oder ob sie eine Verbindung zu einer Datentabelle besitzen.
Wenn ich das Öffnen des Berichts, das Speichern mit OutputTo als PDF und das anschließende Schließen einzeln betrachte, dann sind im Wesentlichen das OutputTo (von 200ms auf 530 ms) und das Schließen (von 10ms auf 310 ms) von dem Effekt betroffen. Das Öffnen des Berichts steigt nur leicht (von 160ms auf 240ms).
Mir scheint dieses Problem recht verwandt mit dem Öffnen/Schließen-Problem der Formulare und Berichte zu sein.
Aktuell verwendetes Build von Access: 2409
Früher war dies kein Problem, allerdings basiert mein Vergleich noch auf der A97-Variante der oben beschriebenen Routine.
Falls jemand eine Lösung für dieses Problem haben sollte, die nicht den totalen Verzicht auf Unterberichte beinhaltet, so wäre ich für diese sehr dankbar.
Schöne Grüß
olec
|