Einzelnen Beitrag anzeigen

globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#74

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 3. Feb 2009, 18:40
Zitat von omata:
Schau dir mal bitte im ClientDataSet die Eigenschaft PacketRecords an. Setzte dort mal einen Wert von z.B. 1000 ein und versuche dein Glück...
Hallo,
ich bin leider die ganze Zeit nicht dazu gekommen, das auszuprobieren, aber jetzt habe ich das mal getan.
Ergebnis:
Schaut auf den ersten Blicksehr gut aus, wenn's darum geht, die Zeitdauer fürs Öffnen zu reduzieren.
Und es ist nicht einmal nötig, die nächsten Packets explizit abzuholen mit GetNextPacket ... wenn man z.B. ans Ende geht, ist das implizit mit dabei.

Aber leider geht das dann auf Kosten der Laufzeit.
Während der Open mit allen Datensätzen noch 6 Sekunden benötigt hat (was mir durchaus ok und akzeptabel erscheint!), geht es jetzt schneller als 1 Sekunde.
Aber beim Sprung ans Tabellenende braucht er dann ca. 17 Sekunden.
Ist ja auch klar: es dauert einfach länger, jedes Päckchen einzeln zu verpacken, zu verschnüren und zu beschriften, als alles einfach in ner Gitterbox zu stapeln und einen gemeinsamen Adressaufkleber draufzupatschen.

Und was noch schlimmer ist: die ersten 1000 Datensätze sind dann nicht mehr sichtbar, d.h. nicht mehr Teil der Datenmenge.
Um Zufälle auszuschließen, habe ich das auch mit ner anderen PacketRecords-Einstellung probiert, nämlich 2407. Gleiches Ergebnis, es sind 2407 Datensätze weniger da.

Und nur mal ins Blaue hinein gesprochen, wage ich die Prophezeiung, dass jetzt die Umsortierung noch deutlich länger dauern wird.
  Mit Zitat antworten Zitat