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.