Da fallen mir doch ein paar wesentliche Dinge auf
- Das ständige COMMIT bremst ... Starte die Transaktion, trage alle Daten ein, und ganz zum Schluss ein COMMIT
- Du erstellst die SQL-Statements ständig neu, dadurch kommst du nicht in den Genuss der Prepared-Statements, die wesentlich schneller ablaufen. Erstelle die für jedes Statement ein Query-Objekt und benutze das (Parameter verwenden)
Delphi-Quellcode:
LCount_Query.SQL.Text := 'SELECT count(*) FROM ' + Fertigungslos + ' WHERE (Auftragsnummer = :JobId) ...';
...
LCount_Query.ParamByName('JobId').Value := JobID;
Generell würde ich den Import aber anders auf die Beine stellen:
- Anlage einer (oder mehrerer) Import-Tabelle(n)
- Views von den Import-Tabellen anlegen, um die Daten in das neue Format zu überführen
- Mit diesen Views den Import durchführen
Ab dem Schritt 2 läuft dann alles auf der Datenbank selber und sollte erheblich schneller funktionieren.
Sollte (wenn die Zieltabellen einen vernünftigen Index haben) sich dann nur um Stunden handeln
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)