Moin
Dp
Ich hab folgendes Problem, ich hab hier ein Array mit 4*30000 Werten, und muss dass möglichst schnell in die Firebird Datenbank einspeisen. Momentan brauch ich für die 30k werte ungefähr 30 Sekunden (übers Netzwerk), und da dachte ich mir das kann man bestimmt noch optimieren, hier mal mein Code:
Delphi-Quellcode:
Frm_Messung.ZConnection1.StartTransaction;
with Frm_Messung.ZQuery2 do
begin
saving := true;
for zt := 0 to round(Frm_Messung.Ch_Messung.BottomAxis.Maximum) do
begin
Params[0].AsInteger := tId;
Params[1].AsInteger := zt;
Params[2].AsFloat := arr_messwerte[tdim, zt, 0];
Params[3].AsFloat := arr_messwerte[tdim, zt, 1];
ExecSQL;
frm_messung.pb_db.Position := frm_messung.pb_db.Position +1;
end;
end;
(*try
Frm_Messung.ZQuery2.ExecSQL;
except
Frm_Messung.ZConnection1.Rollback;
end;*)
Frm_Messung.ZConnection1.Commit;
Im Zquery2.Sql steht:
Code:
INSERT INTO Messwerte (ID_mess, Millisec, Messwert_Links, Messwert_Rechts, Winkel, Merker) VALUES (:id, :sec, :mel, :mer, :win, :mek);
wobei ich die Parameter alle im
Query selber schon eingetragen hab.
Die Parameter win und mek sind noch nicht belegt kommt aber später noch.
Nun wäre halt die frage wo ich noch das eine oder andere Rädchen drehen könnte um das zu optimieren.
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"