Forum: Datenbanken
Delphi
by omata,
16. Sep 2009
So ich habe mich jetzt nochmal dran versucht.
Ich muss meine Aussage leider etwas korrigieren...
Ich schaffe immerhin 1000000 Datensätze (Datenvolumen von 60MB) in 4 Minuten (siehe Anhang).
Die Zeiten die ich oben angegeben hatte, hatte ich mit FlameRobin ausprobiert und eben nicht in Delphi. Das sollte eigentlich auch kein Problem darstellen, allerdings darf für meinen Vorschlag...
Forum: Datenbanken
Delphi
by omata,
14. Sep 2009
var TD:TTransactionDesc; (aus DBXpress)
begin
SQLConnection.StartTransaction(TD);
try
SQLConnection.ExecuteDirect('INSERT INTO ...');
SQLConnection.Commit(TD);
except
SQLConnection.Rollback(TD);
end;
end;
Forum: Datenbanken
Delphi
by omata,
14. Sep 2009
So, ich habe das jetzt mal selber ausprobiert...
1.000.000 Zeilen = 0:18 (Datei = 16MB)
1.000.000.0 Zeilen = 2:48 (Datei = 166MB)
Also für einen Datensatz ca. 18µs (auf meiner Maschine = P4, 3GHz)
Forum: Datenbanken
Delphi
by omata,
14. Sep 2009
...das ist klar, ist trotzdem der schönere und auch sicherere Weg.
Wenn du die Daten erstmal in der Datenbank hast, ist die Prüfung auf doppelte Einträge doch super einfach. Das Protokollieren muss doch nicht unbedingt beim Einfügen geschehen. Dieser Weg ist doch viel flexibler und die Daten können dann leichter weiterverarbeitet werden.
Forum: Datenbanken
Delphi
by omata,
14. Sep 2009
blödsinn...
Mach es so...
SQLQueryTemp.SQL.Text:=sqltxt;
SQLQueryTemp.ExecSQL(true);