AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Insert geschwindigkeit verbessern
Thema durchsuchen
Ansicht
Themen-Optionen

Insert geschwindigkeit verbessern

Ein Thema von Grumble · begonnen am 10. Feb 2005 · letzter Beitrag vom 11. Feb 2005
 
Benutzerbild von Grumble
Grumble

Registriert seit: 19. Mär 2003
Ort: Dresden
203 Beiträge
 
Delphi 6 Enterprise
 
#1

Insert geschwindigkeit verbessern

  Alt 10. Feb 2005, 13:27
Datenbank: Firebird • Version: 1.5.1 • Zugriff über: Sql (Zeos)
hallo leute,

ich moechte mich mal an die profis hier wenden und frag ob und wie ich das schreiben in die db schneller machen kann, dazu hier erstmal der quellcode:

Delphi-Quellcode:
if DM.ZCONDATA.Connected=false then DM.ZCONDATA.Connect;
        // schreiben der asset_data

      DM.ZQ.SQL.Clear;
      dm.ZQ.SQL.Add('INSERT INTO ASSET_DATA');
      dm.ZQ.SQL.Add('(ASSET_ID'); //a
      dm.ZQ.SQL.Add(',GEO_ID'); //b
      dm.ZQ.SQL.Add(',DATA)'); //c
      dm.ZQ.SQL.Add('values');
      dm.ZQ.SQL.Add('(:a,:b,:c);');
      dm.ZQ.ParamByName('a').AsInteger:=caid;
      dm.ZQ.ParamByName('b').AsInteger:=0; }
  lasset:=Tstringlist.Create;
  AssignFile(tempfile,OpeniDLG.FileName);
  Reset(tempFile);

  While not EOF(tempFile) do
  begin
    c:=c+1;
    ReadLN(tempFile,tempString);
    if c=1 then
    begin
    if (firstline) then
    begin
      dm.ZQ.ParamByName('c').AsString:=tempstring;
      dm.ZQ.ExecSQL;
    end;
    end
    else if c>1 then
    begin
      dm.ZQ.ParamByName('c').AsString:=tempstring;
      dm.ZQ.ExecSQL;
    end;
    bkrehab_fprogress.pb_progress.Position:=filepos(tempfile);
    bkrehab_fprogress.Panel2.Repaint;
    lasset.Append(tempstring)
  end;
dm.ZQ.SQL.Clear;
  dm.zq.SQL.add('commit retain;');
  dm.ZQ.ExecSQL;
in der while schleife lege ich den parameter c immer neu fest und schreibe per execsql in die db, nach schleifendurchlauf dann commit...
nun dauert das ganze bei ca. 6500 datensaetzen doch recht lange... ich hab mal was gelesen dass stored procedures schneller sind ... aber wie macht man sowas, geht das mit zeos... ist es ratsam? ich habe ja keine erfahrung damit... oder gibts andere moeglichkeiten die geschwindigkeit zu verbessern?
gruss
Grumble

... moege der code mit dir sein ...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz