Einzelnen Beitrag anzeigen

Slipstream
(Gast)

n/a Beiträge
 
#13

AW: SQL "Update or Insert" langsam

  Alt 3. Jan 2017, 04:14
Kann man nicht einfach ein paar hundert oder sogar tausend Update-Insert-Anweisungen in einem Rutsch sammeln und die dann auf einmal executen? Wenn ich so grosse Mengen auf einmal aktualisieren und/oder einfügen muss, geht das immer viel schneller. Man kann doch in die SQL-Stringlisten einen Haufen Zeugs reinpacken, eigentlich bis der Speicher voll ist. Was da so aufhält, ist bestimmt das Execute 2000 Mal ausführen. Eigentlich sollte es auch reichen, das nur einmal auszuführen, 2000 Datensätze ist jetzt nicht die Welt.
Delphi-Quellcode:
Transaction.StartTransaction;

for i := 0 to 2000 do
begin
  Query.SQL[i] := 'Update or insert into foo (A, B, C) values (:a, :b, :c)';
  Query.ParamByName('a').AsString := 'v1';
  Query.ParamByName('b').AsString := 'v2';
  Query.ParamByName('c').AsString := 'v3';
end;

Query.Execute;

Transaction.Commit;
  Mit Zitat antworten Zitat