Records aus Tabelle löschen ist extrem langsam!

15. September 2016 10:58

Hallo,

mir ist schon mehrfach aufgefallen, dass das Löschen von mehreren Datensätzen aus einer Page oder auch direkt aus der Tabelle EXTREM langsam ist. Per Programmierung oder Report geht es allerdings super fix. Wie kann das denn sein?

Wir haben ein eigenes Modul, welches z.B: eine Besuchsplanung erstellt. Wenn nun jemand versehentlich falsch gefiltert hat und deswegen alle Datensätze löschen möchte, ist das einfach viel zu langsam und mit langsam meine ich WIRKLICH LANGSAM. So langsam, dass ich letztendlich den Standard Löschen-Button von der Page genommen habe und einen eigenen da hingesetzt habe, welcher die markierten Einträge per DELETEALL löscht. Ruck-Zuck ist die Tabelle wieder leer.

In der Verkaufspreistabelle ist es das gleiche. Ich habe mich beim Einspielen beim Startdatum um einen Tag vermacht und wollte die fehlerhaften Datensätze entfernen. Es waren in etwa 16.000 Datensätze, die ich direkt aus der Tabelle löschen wollte. Nach 2h habe ich den Clienten abgeschossen und den Rest per Report gelöscht. Der Report hat innerhalb weniger Sekunden die restlichen 8.000 Datensätze entfernt. Mal davon abgesehen, dass ja nicht mal ein Rollback erfolgt ist.


LG
Raik

Re: Records aus Tabelle löschen ist extrem langsam!

15. September 2016 11:49

Hallo,

hast du das Change-Log für die Tabellen an?

Gruß Fiddi

Re: Records aus Tabelle löschen ist extrem langsam!

15. September 2016 13:03

Was steht außerdem im OnDelete-Trigger? Der kann auch (notwendigen) Code enthalten, der die Löschung verlangsamt.
Mit DELETEALL wird der nicht ausgeführt, nur bei DELETEALL(TRUE).

Re: Records aus Tabelle löschen ist extrem langsam!

15. September 2016 13:59

Hi fiddi, hallo Kowa,

in unserem eigenen Modul ist für das Löschen die Protokollierung nicht an. Für Bearbeiten und Einfügen aber schon.
Für die Verkaufspreistabelle 7002 ist die Protokollierung für das Löschen an.

Probeweise habe ich im Testsystem nunmal die Protokollierung für Löschvorgänge für die 7002 deaktiviert. Es bleibt langsam. Nach knapp 10 Minuten Löschvorgang habe ich den Client beendet.
Im OnDelete Trigger steht in beiden Fällen nichts. Auch der Debugger zeigt... Nichts.

Mache ich die Löschung mit einem Report alá: Dataset: 7002 Sales Price -> OnAfterGetRecord(): "Sales Price".DELETE(TRUE); sind in 30 Sekunden 12.000 Datensätze weg.

Leider finde ich auch im Netz nichts darüber und die Kollegen können sich auch nicht vorstellen woran das liegen könnte.

Re: Records aus Tabelle löschen ist extrem langsam!

15. September 2016 14:05

Ich habe keine Lösung zu dem Problem, möchte aber kurz einwerfen dass der Windows Client in vielen Situationen langsam ist, wo programmierte Vorgänge die eigentich das gleiche machen schneller laufen. Würde also mal sagen "it's not a bug, it's a feature". Wäre aber auch interessiert an einer Lösung.

Re: Records aus Tabelle löschen ist extrem langsam!

15. September 2016 14:12

Welches Build setzt ihr denn ein?

Gruß Fiddi

Re: Records aus Tabelle löschen ist extrem langsam!

15. September 2016 16:58

Ich habe hier Build 7.1.40941.0

Demnächst wird ein Partner auf 2016 geupdatet. Da werde ich mir das Problem auch nochmal ansehen.
Komisch ist das schon. Etwas langsamer wäre ja kein Problem, aber nicht um das "10000 Fache".