Performance

Oliver Lehmann

Neues Mitglied
In der Version 5.0.6 haben wir ein Problem mit der Performance. Über den Buchungsimport buchen wir ca. 3000 Buchungen. Das dauert beim Kunden etwa 3 minuten, die Buchungen werden sofort verarbeitet. Dann muss dieser Buchungsstapel gelöscht werden. Das dauert dann 26 Minuten! Hatte jemand schon einmal dieses Problem und evtl. dafür eine Lösung?
 
Hallo Oliver,

das heißt das Löschen des Buchungsstapels dauert 26 Minuten?
Das Importieren geht normal schnell?

LG Claudia
 
Moin,

das Löschen ist generell langsamer, weil nicht nur die Salden zurückgenommen werden müssen, sondern auch alle Buchung zusätzlich in die Archiv-Tabellen verschoben werde. Faktor 8 ist allerdings krass. Ich würde empfehlen während des Löschens den SQL Profiler mitlaufen zu lassen, um zu schauen welche Teilabfragen den höchsten Aufwand verursachen. Mit etwas Glück sind das nicht die Delete und Insert Statements, da könnte man nicht so viel machen, sondern ein Select Statement, das sich durch einen zusätzlichen Index möglicherweise beschleunigen ließe.

Ich persönlich glaube nicht, dass die Version 9.0.5.x plötzlich das Problem auslöst, sondern dass die Summe der vorhandenen Datensätze einen Schwellwert überschritten hat, so das manche Abfragen extrem ineffizient werden.
 
@planB Vielen Dank für die Antwort. Inzwischen haben wir diesbezüglich mit dem Kunden eine nicht technische Lösung gefunden. Sage ist ein solches Verhalten übrigens unbekannt. Die Arbeit es mit dem Demomandanten nachzuweisen werden wir uns allerdings nicht machen.
 
Wir haben bei einem Kunden ebenfalls das Problem. Er muss regelmäßig Sitzungen mit 3000-10000 Buchungen löschen.
Auf der 8.1.2 war das noch kein Problem. Seit der 9.0 ist es hier ebenfalls viel langsamer und teilweise wird durch das Löschen das ganze System lahmgelegt. Bei Sage sind wir auch nicht wirklich weiter gekommen.
Momentan stößt der Kunde das Löschen kurz vor Feierabend an, damit es in Ruhe durchlaufen kann...
 
Ich würde mich (bzw. den Kunden) da eher fragen:
Ist denn der Arbeitsablauf überhaupt so sinnvoll, wenn man Sitzungen wieder löschen muss?

Eventuell wäre da ein Überdenken des Betriebsablaufes da eine sinnvollere Lösung.
 
So ganz verstehe ich das auch nicht, erst Importiert man 3.000 Sätze und löscht diese wieder? Beim Import würde ich erstmal auf "Unverarbeitet" stellen, könnte mir vorstellen, das die Löschung dann schneller geht.
 
So ganz verstehe ich das auch nicht, erst Importiert man 3.000 Sätze und löscht diese wieder? Beim Import würde ich erstmal auf "Unverarbeitet" stellen, könnte mir vorstellen, das die Löschung dann schneller geht.
Danke für den Vorschlag. Ja das würde die Zeit des Löschens sicher reduzieren, auch wenn wir dies nicht versucht haben. Natürlich kommt es im Betriebsablauf des Kunden nicht vor, dass der Kunde beim Importieren bereits weis das die Sitzung wieder gelöscht wird. Die Gegenüberstellung erfolgte nur, weil es im Betriebsablauf des Kunden vorkommt, dass große Sitzungen gelöscht werden müssen und dieses Löschen den Betreibsablauf unverhältnismäßig aufhält. Die Lösung haben wir bereits gefunden, der Betriebsablauf wurde so angepasst das das Löschen einer großen Buchungssitzung nicht mehr in dieser Weise stört.
 
Hallo Olli.

probier mal folgende Indizes aus:
CREATE NONCLUSTERED INDEX ix_isk_KHKBuchungserfassung_Mandant_SitzungStatus ON [KHKBuchungserfassung] ( [Mandant], [Sitzung],[Status] ) ;
CREATE NONCLUSTERED INDEX ix_isk_KHKBuchungserfassung_Mandant_Status ON [KHKBuchungserfassung] ( [Mandant], [Status] ) ;
CREATE NONCLUSTERED INDEX ix_isk_KHKBuchungserfassungSDiv_Mandant_Tan ON [KHKBuchungserfassungSDiv] ( [Mandant], [Tan] ) ;
 
Hallo Olli.

probier mal folgende Indizes aus:
CREATE NONCLUSTERED INDEX ix_isk_KHKBuchungserfassung_Mandant_SitzungStatus ON [KHKBuchungserfassung] ( [Mandant], [Sitzung],[Status] ) ;
CREATE NONCLUSTERED INDEX ix_isk_KHKBuchungserfassung_Mandant_Status ON [KHKBuchungserfassung] ( [Mandant], [Status] ) ;
CREATE NONCLUSTERED INDEX ix_isk_KHKBuchungserfassungSDiv_Mandant_Tan ON [KHKBuchungserfassungSDiv] ( [Mandant], [Tan] ) ;
Hallo Stephan,

Danke!
 
Zurück
Oben