Einzelnen Beitrag anzeigen

Franzelchen

Registriert seit: 22. Mär 2007
82 Beiträge
 
#1

Insert Optimierung

  Alt 2. Mär 2012, 17:16
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
Hallo,

Den folgenden Quelltext habe ich im Forum gefunden und für meinen Zweck angepaßt:
Delphi-Quellcode:
procedure TForm1.InputDatasetClick(Sender: TObject);
var i:Integer;
 startzeit,stopzeit : TDateTime;

begin
startzeit := now;
Screen.Cursor := crHourGlass;
ZConnection.Database := 'c:\msql\firedb.fdb';

 for i:=0 to SG1.RowCount-1 do
  begin
   ZQuery1.SQL.text:='INSERT INTO TestTabelle (Wert1, Wert2) VALUES(:v1, :v2)';
        with ZQuery1.params do
    begin
      ParamValues['v1']:=SG1.Cells[0, i];
      ParamValues['v2']:=SG1.Cells[1, i];
    end; // with
   ZQuery1.ExecSQL;
  end; // i
Screen.Cursor := crDefault;
stopzeit := now;
Panel1.Caption :='SuchZeit : '+ FormatDateTime('nn:ss:zzz', StopZeit - StartZeit) ;
end;

Das Übertragen von ca. 35000 Datensätzen dauert ca. 4 Minuten.

Kann die Übertragung beschleunigt werden?

Ich habe mich natürlich über einige andere Möglichkeiten informiert.
zB. Bulk insert wird aber von Firebird leider nicht unterstützt.

oder external tables bei denen Sicherheitsbedenken bestehen? Welche das sind...?? daraus folgt vermutlich für mich nicht verwendbar.

Ich bitte um Eure Hilfe
  Mit Zitat antworten Zitat