Thema: Delphi Performance TpFIBDataset

Einzelnen Beitrag anzeigen

Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Performance TpFIBDataset

  Alt 24. Okt 2008, 09:54
So, nochmal eine Zusammenfassung:
Delphi-Quellcode:
var
  Dataset: TpFIBDataset;

begin
  Dataset.First;
  while NOT Dataset.Eof do begin
    for i := 0 to 9 do begin
      Dataset.Fields[i].AsString;
    end;
    Dataset.Next;
  end;
end;
Das ganze ist einfach nur eine Routine, um die Geschwindigkeit des Auslesens von 10 Feldern zu testen, weswegen der resultierende String auch zu nichts zugewiesen wird. Am Dataset hängen keine Sources, Komponenten etc.!

Der Query fragt aus der Datenbank (Adressen) alle Felder der Tabelle ab. In der Tabelle befinden sich ca. 3500 Einträge.

Performance
TpFIBDataset: ~35000 ms
TpFIBQuery: 4600 ms
JvUIBQuery: 600 ms

Also signifikante Unterschiede.

Auf die JvUIB hab ich zum Laden verzichtet, da sich die JvUIBTransaction imho nicht mit der TpFIBTransaction synchronieren lässt.

Workaround für mich um passable Geschwindigkeiten zu erreichen:

1) Begrenzen der Abfrage auf 500 Datensätze
2) Nutzen des pFIBQuery aus dem pFibDataset
Dataset.QSelect.Fields[i].AsString Vielen Dank an alle Mitdiskutierenden.

BTW: Erstaunlich, dass eine OS-Komponente (JvUIB) schneller ist, als eine kommerzielle (FIBPlus). Trotzdem sind mir die FIBs bequemer
  Mit Zitat antworten Zitat