Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#1

Firebird wird beim Append von Datensätze immer langsamer

  Alt 24. Jan 2009, 23:17
Datenbank: Firebird • Version: 2.0 • Zugriff über: FibPlus
Hallo,

zum Testen meiner Anwendung generiere ich Testdaten und schreibe sie in eine Firebird-Datenbank.
Am Anfang ist das Anfügen der Datensätze auch noch recht schnell gegangen, aber Mitlehrweise ist es doch sehr zähflüssig.

Delphi-Quellcode:
procedure dbEinfuegen;
var
  strText: String;
  dbZahl: Double;
  strSende: String;
  z: Integer;
begin
  For z:=0 to high (Form3.MAArr) do
  begin
    strSende:= ZufallMSmitWert(Form3.MAArr[z].FMAID,
                             Form3.MAArr[z].FMWMinBereich,
                             Form3.MAArr[z].FMWMaxBereich);

    StrText:= copy (strSende,2,5); // Nur die ersten 5 Zeichen übernehmen.StrSende[1,3];
    dbZahl:= strToFloat(copy(strSende,7,Length(strSende)-7));

    if pos('M1',StrText)=0 then
    begin
      Form3.pFIBTransaction2.StartTransaction;
      try
        Form3.PFIBDataSet2.Append;
        Form3.PFIBDataSet2['MW_MSID']:= strText;
        Form3.PFIBDataSet2['MW_MW']:= dbZahl;
        Form3.pFIBDataSet2['MW_DATUMUHRZEIT']:= Form3.DTDatumUhrZeit;
        Form3.pFIBDataSet2.Post;
      except
        Form3.pFIBTransaction2.RollbackRetaining;
      end;
      end else
      begin
      if Form3.i = 70 then
      begin
        Form3.pFIBTransaction2.StartTransaction;
        try
          Form3.PFIBDataSet2.Append;
          Form3.PFIBDataSet2['MW_MSID']:= strText;
          Form3.PFIBDataSet2['MW_MW']:= dbZahl;
          Form3.pFIBDataSet2['MW_DATUMUHRZEIT']:= Form3.DTDatumUhrZeit;
          Form3.pFIBDataSet2.Post;
          Form3.bME:= TRUE;
        except
          Form3.pFIBTransaction2.RollbackRetaining;
        end;
     end;
   end;
 end;
end;
Mit dieser Procedure werden die Datensätze angehängt.

Vielleicht hat einer von euch eine Idee, wie man das Anhängen der Datensätze beschleunigen kann.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat