Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Anfängerfrage zu SQL-Insert

  Alt 24. Feb 2021, 23:30
Ich hab mal eine Messuung vorgenommen, das sind 201 ms bei mir. Verbindung über ODBC mit ADO.
Delphi-Quellcode:
object ADOConnection1: TADOConnection
  ConnectionString =
    'Provider=MSDASQL.1;Password=masterkey;Persist Security Info=True' +
    ';User ID=SYSDBA;Data Source=Firebird Test'
  LoginPrompt = False
  Provider = 'MSDASQL.1'
end
Delphi-Quellcode:
var
  I : Integer;
  Sw : TStopWatch;
begin
  adoConnection1.connected := true;
  adoCommand1.connection := adoConnection1;

  adoCommand1.commandText := 'create table bla (one integer, two integer, three integer)';
  adoCommand1.execute;
  Sw.Start;
  for i := 0 to 2000 do
  begin
    adoCommand1.commandText := 'insert into bla values (1, 2, 3);';
    adoCommand1.execute;
  end;
  Sw.Stop;
  ShowMessageFmt('Dauer %d ms', [Sw.Elapsed.Milliseconds]);

  adoCommand1.commandText := 'drop table bla';
  adoCommand1.execute;
end;
Bei vielen nicht korrekt abgeschlossenen Transkationen (z.b. killen des Prozesses beim Debgging) macht Firebird generell schwerste Probleme. Ich hatte gerade letzte Woche den Fall, dass ein Datenimport (640.000 Inserts mit 19 Feldern) anstelle von bisher 5 Minuten 6 Stunden benötigte.

Nach Backup + Restore war alles wieder schnell wie bisher.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all

Geändert von Union (24. Feb 2021 um 23:40 Uhr)
  Mit Zitat antworten Zitat