Performance im DBGrid
-
Hi,
hat jemand irgendwelche Erfahrungen mit DBGrids und Performanceproblemen ??Ich benutze mySQL über TADOConnection und verbinde mein DBGrid mit dem Datasourceobject.... so weit so schön..!!
Ab einer bestimmten Größenordnung der Daten wird der Aufbau immer langsamer
Jemand eine (einfache) Idee
Danke
Wilfrid
-
1. naja z.b. nur das anzeigen, was der anwender auch sehen kann. weiss aber nicht ob das tdbgrid sowas hergibt. in nem tlistview geht sowas zu machen, allerdings musst du dort die daten dann selber eintragen und die aktualisierung übernehmen.
2. nur die daten anzeigen, die wirklich nötig sind (datenmenge filtern)
-
hatte kürzlich in einer Anwendung ähnliche probleme. Musste ca. 64k Zeilen (à ca. 80Byte) in eine Listbox eintragen (allerdings mit MFC). Das hat ewig gedauert. (auf einem 1.6GHz rechner mit 512MB Ram rund 1-2min)
Hab mich dann entschieden die daten irgendwo im hintergrund zu halten und immer auf das Scroll-Ereignis zu reagieren und da immer nur die 23 Zeilen die grad sichtbar sind in die Listbox zu knallen. Der Performance-Schub war höllisch (: Würde dir was ähnliches empfehlen. Kann unter Umständen recht viel bringen und entlsastet auch die Datenbank (von der Menge her). (Siehe auch mySQL-Keyword "LIMIT")
hat natürlich auch Nachteile. Eine andere Variante ist, wie schon in deinem anderen Thread vorgeschlagen wurde, die wichtigsten (sprich die sichtbaren) daten zuerst runterzuziehen und im Hintergrund dann die ganze Tabelle langsam aufbauen... kann aber auch mit Problemen verbunden sein, wenn der Benutzer z.B. plötzlich ans Ende des Grinds scrollen will, dann ändern sich die Sichtbaren daten plötzlich... darauf solltst du auch reagieren.-junix