Hi,

ah, und wo lieht der Sinn darin? Wieso beeinflusst ein Import laufende Indizes? Also nicht, dass ich dir das nicht glaube, ich würde es nur gerne verstehen ;-)

Wie schaltest du die denn aus? macht du ein Drop und legst sie danach wieder an?


Gruß

Stefan

Also ich schalte VOR größeren Importen IMMER alle Indizes aus und erst danach wieder an. Das bringt idR die beste Performance

Andy

Am 16.03.2009 um 10:09 schrieb Stefan Sicurella <[email protected]>:

Hi,

ich frage mich gerade ob das Problem mit der Geschwindigkeit in diesem Fall vielleicht doch anderswo liegt. Seit dem Import der 65000 Artikel zeigen sich noch andere Schwächen in der Performance. Aber genau diese Schwächen hatte ich bei 10000 Artikeln mit dem Index Erstellen gelöst, danach liefen die Querrys rasend schnell. Muss ich evtl. nach jedem Import den Datenbankindex für die Suchfelder löschen und erneut anlegen? Erstellt sich der Index selbst neu beim Hinzufügen und Löschen von Datensätzen?

Kennst sie damit jemand genauer aus?


Gruß


Stefan


am 12.03.2009 18:23 Uhr schrieb Thomas Tempelmann unter
[email protected]:

Hi,


Das Hauptproblem ist, daß man erstmal der Listbox beibringen muss,
dass sie die Scrollbalken so einrichtet, daß sie auch 65000 Zeilen
suggeriert und anwählbar macht (z.B. durch Page up/down-Tasten usw.)

Den Rest kann man dann, wie Metti vorschlägt und wie es die "on
demand" LB macht, über die Paint-Events lösen, also erst die Daten
holen, wenn sie auch wirklich gezeigt werden sollen.

Um erstmal die 65000 Dummy-Zeilen in die Listbox zu kriegen, kann man evtl. mit der neuen Direktzuweisung arbeiten: Irgendwie kann man doch nun die gesamte Listbox in einem Rutsch füllen, indem man Cell(-1,-1)
zuweist, oder so ähnlich.

Yup, da kann man einen tab-return getrennten string zuweisen, aber...

D.h, man baut vorher einen passenden String zusammen, und weist den
dann zu. Das geht vermutlich schneller, als wenn man 65000mal AddRow
aufruft.

Habe ich auch gedacht. Ist aber langsamer, und zwar nicht zu knapp (4-mal in
meinem Test! Siehe auch
http://support.realsoftware.com/listarchives/realbasic-nug/2008-12/msg00464 .
html)
Wahrscheinlich splittet RB den Initstring dann wieder und ruft intern den addrow-Befehl 65000 mal auf, und man hat nur Zeit damit vertrödelt, den
string für die cell(-1,-1) aufzubauen.

Maximilian Tyrtania








Antwort per Email an