ich kann mir vorstellen, dass hier das eigentliche Problem liegt. Erste Vermutung: interne Tabellen, die sich aufblähen und schlechte Zugriffe darauf (bzw. ungeeignete Definition der internen Tabelle(n), fehlende Secondary keys etc.). In dem Fall würde ein zwischendurch abgesetzter zusätzlicher COMMIT WORK keinen Performance-Gewinn bewirken.Ich kann am Protokoll erkennen, dass die Buchungen immer "langsamer" werden (immer mehr Zeit brauchen), je mehr Sätze abgearbeitet wurden.
Weil gestern in Berlin Feiertag war und ich eine entsprechende Testdatei beschaffen muss. So konnte ich die Zeit wenigstens nutzen, meine Vermutung zu diskutieren.
Klingt für mich nach einem Memory Leak, als ob Du vergessen hast irgendeine Puffertabelle vor jedem Durchlauf leerzuräumen und sich dadurch geschachtelte Loops hochpotenzieren. Ich denke, Shortcut IT's Ratschlag ist gut: Tracen, wo die Laufzeit entsteht.Ich kann am Protokoll erkennen, dass die Buchungen immer "langsamer" werden (immer mehr Zeit brauchen), je mehr Sätze abgearbeitet wurden.
Tja, da muss ich dich enttäuschen. Ich mache (statt eines COMMITs nach dem LOOP) jetzt einen COMMIT innerhalb des LOOPs. Vorher: Nach zwei Stunden hat der Anwender das Programm entnervt abgebrochen. Nachher: 12 Minuten Laufzeit. ;)DeathAndPain hat geschrieben: ↑10.03.2023 17:40Ich nehme nicht für mich in Anspruch, es zu wissen, aber dass ein voller Puffer die Laufzeit verschlechtert, kann ich mir kaum vorstellen.