Doppelte Einträge löschen Beschleunigen
Guten Morgen
Habe ein Dashboard mit einem Button mit folgenden Befehl. (löscht alle doppelten Zeilen in Tabelle "Leere") Es dauert 6 Min bis er 1700 Datensätze durchgecheckt hat. Gibt es eine Möglichkeit dies zu Beschleunigen. Habe mit "do as Server" versucht da löscht er mir die Doppelten sowie die Originalen auch weg. Was kann ich machen um es zu beschleunigen? Habe es auch in der Tabelle Leere versucht mit "do as Server" braucht er 1,47 Minuten löscht mir aber eben die doppelten und die originalen auch weg. Vielen Dank für Eure Bemühungen und Tipps.
Button:
for i in select Leere do
delete (select Leere where Steuernummer = i.Steuernummer and Nr != i.Nr)
end
4 Antworten
-
Hallo Claus. Du weißt ja, daß in der langen Geschichte der Programmierung bei Scripten mit Schleifen und delete() noch nie etwas passiert ist, trotzdem bitte ich Dich, vorher ein Backup zu machen, bevor Du folgendes austestest ;-)
Von allen Datensätzen mit gleichen Steuernummern werden die gelöscht, die eine größere Datensatznummer haben als der zuerst angelegte, welcher erhalten bleibt. Tabelle mit 600 Datensätzen bei mir in 5sec. Mirko
do as server for i in select Leere do let result := min((select Leere)[Steuernummer = i.Steuernummer].number(Nr)); if result != i.number(Nr) then delete i end end end
-
Sorry das ich mich erst jetzt melde, war im Urlaub. Habe es sofort probiert und es funktioniert sehr gut die Zeit ist auf 1.10 Min reduziert worden. Sind 1800 Datensätze bei mir. Kann es sein das ich das über eine Button im Dashboard mache und dies nicht verknüpft ist mit der Tabelle "Leer".
Vielen Dank Mirko
Content aside
- Status Answered
- vor 10 MonatenZuletzt aktiv
- 4Antworten
- 63Ansichten
-
2
Folge bereits