Hallo Gemeinde,
eine Tabelle beinhaltet ~ 1.8 Mio Datensätze. Die werden in ein List-Objekt eingelesen. Ein Feld dieses Objektes berechnet einen Wert aus drei Feldern der Abfrage (bis hierhin alles sehr performant). Dieser neue Wert soll nun in ein leeres Feld der Tabelle eingetragen werden.
Dazu habe ich eine SP geschrieben in der Form:
Weiter im Programm:
Das ganze geht unendlich langsam. Es vergehen 2, 3 Sekunden für ein 'UPDATE' eines einzelnen Datensatzes.
Umgebung:
D2007 mit IBX
FB Classic
Win 2008 64 (Intel i7, 16 GB RAM, WD-Raptor, 100 MBit Netz)
Jemand ne Idee, wie man das schneller gestalten könnte?
Danke fürs mitbrainen.
Uwe
eine Tabelle beinhaltet ~ 1.8 Mio Datensätze. Die werden in ein List-Objekt eingelesen. Ein Feld dieses Objektes berechnet einen Wert aus drei Feldern der Abfrage (bis hierhin alles sehr performant). Dieser neue Wert soll nun in ein leeres Feld der Tabelle eingetragen werden.
Dazu habe ich eine SP geschrieben in der Form:
Code:
UPDATE Wetterdaten SET Wetterdaten.DRUCK_MEERESHOEHE = :Druck WHERE Wetterdaten.ID = :Ident
Code:
if not taDWD.InTransaction then taDWD.StartTransaction; for i := 0 to PDruckliste.Count - 1 do begin spUpDate.Params[0].AsFloat:= PDruckListe^[i].Druck; spUpdate.Params[1].AsInteger:= PDruckListe^[i].Index; spUpDate.ExecProc; if id > 999 then begin taDWD.Commit; id:= 0; taDWD.StartTransaction; end; inc(id); end;
Umgebung:
D2007 mit IBX
FB Classic
Win 2008 64 (Intel i7, 16 GB RAM, WD-Raptor, 100 MBit Netz)
Jemand ne Idee, wie man das schneller gestalten könnte?
Danke fürs mitbrainen.
Uwe
Comment