Hallo zusammen,
Vieleicht könnt Ihr mir helfen.
In Tabelle 1 (t1) habe ich Bewegungssätze mit insgesamt 7 Spalten. In Tabelle 2 (t2) habe ich zu den Bewegungssätzen Stammdaten mit 8 Spalten.
Für jeden Bewegungssatz in t1 suche ich in t2 das Stammdatum mit den meisten Übereinstimmungen in den Spaltenwerten. Die Suche wird dabei von links nach rechts durchgeführt.
D.h. ich prüfe zunächst t1.Spalte1 = t2.Spalten1. In t2 werden alle Zeilen gelöscht in welchen die Bedingung t1.Spalte1 = t1.Spalte 2 nicht erfüllt ist.
Im nächsten Schritt prüfe ich t1.Spalte2 gegen t2.Spalte2 und lösche in t2 wieder alle Datensätze in welchen die Bedingung nicht erfüllt.
Das ganze mache ich solange bis nur noch ein Eintrag in t2 übrig bleibt.
Gelöste habe ich diese Aufgabe indem ich über eine While Schleife die Datensätze in Tabelle 1 einzeln durchgehe. In jeder Schleife schreibe ich die Stammdatenmenge aus t2 in eine Temporäre Tabelle und reduziere die Anzahl an Datensätze in der Temporären entsprechend der oben beschriebenen Logik bis nur noch ein Stammdatensatz übrig bleibt.
T1 hat 5000 Sätze, T2 hat 15000 Sätze.
Die Laufzeit meines Skriptes beträgt insgesamt 20 min.
Wie könnte ich meine Skriptlogik optimieren?
Danke und BG
Thorsten
Vieleicht könnt Ihr mir helfen.
In Tabelle 1 (t1) habe ich Bewegungssätze mit insgesamt 7 Spalten. In Tabelle 2 (t2) habe ich zu den Bewegungssätzen Stammdaten mit 8 Spalten.
Für jeden Bewegungssatz in t1 suche ich in t2 das Stammdatum mit den meisten Übereinstimmungen in den Spaltenwerten. Die Suche wird dabei von links nach rechts durchgeführt.
D.h. ich prüfe zunächst t1.Spalte1 = t2.Spalten1. In t2 werden alle Zeilen gelöscht in welchen die Bedingung t1.Spalte1 = t1.Spalte 2 nicht erfüllt ist.
Im nächsten Schritt prüfe ich t1.Spalte2 gegen t2.Spalte2 und lösche in t2 wieder alle Datensätze in welchen die Bedingung nicht erfüllt.
Das ganze mache ich solange bis nur noch ein Eintrag in t2 übrig bleibt.
Gelöste habe ich diese Aufgabe indem ich über eine While Schleife die Datensätze in Tabelle 1 einzeln durchgehe. In jeder Schleife schreibe ich die Stammdatenmenge aus t2 in eine Temporäre Tabelle und reduziere die Anzahl an Datensätze in der Temporären entsprechend der oben beschriebenen Logik bis nur noch ein Stammdatensatz übrig bleibt.
T1 hat 5000 Sätze, T2 hat 15000 Sätze.
Die Laufzeit meines Skriptes beträgt insgesamt 20 min.
Wie könnte ich meine Skriptlogik optimieren?
Danke und BG
Thorsten