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