![]() |
TDataSet Performanceprobleme
Hallo :hi: ,
ich nutze ein TDataSet um Daten im Speicher zu verwalten. Bei größeren Datenmengen kommt es aber zu Performanceproblemen. Ein besonderer Engpass ist das Auslesen eines Feldes:
Delphi-Quellcode:
Der erste Schritt (Locate) dauert teilweise mehr als 16 ms.
FCells.Locate('id',ARow,[]);
Result:=FCells.FieldByName(IntToHeader(ACol)).asString; Ich hab's auch schon mit LookUp oder First und MoveBy versucht, das Zeitverhalten ändert sich aber nicht. Wie könnte ich den Vorgang optimieren? Danke im Voraus René |
Re: TDataSet Performanceprobleme
Zitat:
|
Re: TDataSet Performanceprobleme
Danke, das klingt schon mal vielversprechend.
Zitat:
Zitat:
Aber du meintest das sicherlich anders. kannst du mir bitte auf die Sprünge helfen? FindKey klingt sehr gut, muss ich mir gleich mal ansehen. Zitat:
Vielen Dank schonmal René |
Re: TDataSet Performanceprobleme
Ich wusste nicht, dass es sich nicht um eine DB-Anbindung handelt. Dann könntest Du einen Index nur ziemlich umständlich hinbekommen. Aber irgendwie musst Du doch TCells.Locate implementiert haben, vielleicht gibt es da Optimierungsmöglichkeiten?
|
Re: TDataSet Performanceprobleme
:cry: TDataSet kennt leider kein FindKey, aber TCustomClientDataSet, werd ich mir mal ansehen.
Zitat:
Zitat:
Trotzdem Dankeschön, werd mal weitergucken. Und wenn jemandem noch was hilfreiches einfällt, wäre ich sehr dankbar. René |
Re: TDataSet Performanceprobleme
Zitat:
Wie genau heist die Klasse und wo (URL ?) kann man den Sourcecode downloaden ? |
Re: TDataSet Performanceprobleme
Hi smudo,
Versuche doch, das mit ADO zu machen. Als 'Connection' nimmst Du einfach irgeneinen Textprovider. Dann setzt Du locktype auf ltBatchOptimistic. Dann werden die Daten nach einem Post nicht gespeichert, sondern erst nach ApplyUpdates. Ergo solltest Du eine Art TMemoryDataset haben. Mit den ADO-Komponenten kannst Du aber Indexe erstellen, oder zumindest nach einer Spalte sortieren: Damit ist dann das Locate schneller. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz