TClientdataset
3. Mär 2007, 09:13
Datenbank: Firebird • Zugriff über: IBObjects
Hallo,
ich habe mal wieder ein Programm älteren Ursprungs zur Anpassung übernommen.
Dieses verwendet das TVirtualMemTable (eine Kaufkomponente) zur Implementierung einer Memorytable.
In diesem Table werden Druckinformationen zusammengestellt und dann an Fastreport übergeben.
Die Verwendung des MemDataset ist historisch begründet, da TClientdataset erst seit D6 verfügbar ist.
Datenmengen werden nach Änderung in wenigen Fällen zurückgeschrieben ansonsten hauptsächlich readonly Mengen.
Die Größe liegt in der Regel unter 100 Datensätzen, kann im Einzelfall aber auch mal bis 500 Datensätze gehen.
Ich stehe jetzt vor der Wahl entweder ein TVirtualMemtable zu upgraden. Sehe aber das sich hier seit 2/3 Jahren nichts mehr getan hat.
Alternativ ist der Austausch auch gegen ein TClientDataset möglich.
Leider blicke ich es hier noch nicht ganz, wo Probleme liegen könnten.
Hat wer Erfahrung mit beiden Techniken und kann dazu einen Tip geben?
Für TClientdataset spricht das es eine Standardkomponente ist und das sie wohl vom Lösungsumfang etwas leistungsfähiger ist.
Erste Performanceuntersuchungen zeigten eigentlich, das das Clientdataset etwas langsamer ist.
200 Datensätze in Memtable 48,5 ms
200 Datensätze in Clientdataset 56,6 ms.
Interesant überigens über einen DataProvider 156 ms.
Hier ist die Performancebremse überigens IBObjects - TIBOQuery.
Die Datensätze in dem vorhergehenden Beispiel wurden über einen TIB_Cursor eingelesen.
Gruß
Peter
|