Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Query in thread ausführev: Wie Ergebnis zurück geben

  Alt 14. Sep 2015, 21:22
Hallo,

2 Monate später
Auch ich wurde schon einige Male "gezwungen" alle Daten clientseitig zu laden so dass der Anwender in zig Millionen Datensätzen suchen kann...

Ich habe gerade mal mit einer In-Memory-Testumgebung in Form einer TStringList() getestet.
Folgende Bedingungen:
Suchwort = 3 Zeichen
Suchstring pro Zeile = 70 Zeichen lang

Bei 3 Mio Datensätzen (= 27,3 MB RAM) benötigt die Standardsuche mit Pos() ca. 977ms.
Ich vermute, dass meine ausgesuchten Bedingungen nicht so gut sind wie deine, von daher wird wahrscheinlich diese Suche auf deine Ergebnismenge angewendet noch einiges schneller sein. Wenn du nur nach Zahlen suchst wird die Suche nochmals geschätzte 6-10x schneller sein.

Bei 1,2 Mio Datensätzen (= 13,4 MB RAM) benötigt mein Test 391 ms. Wenn man die schon genannten Such-Bedingungen berücksichtigt (Timer-Event über 300ms beim Tastendruck und erst nach 3 Zeichen suchen lassen), scheint eine einfache In-Memory-Suche ausreichend, oder?
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (14. Sep 2015 um 21:26 Uhr) Grund: Hauptthema des TS war Threadhandling, aber auch die Handhabung der großen Datenmengen für die Suche wurde hier besprochen...
  Mit Zitat antworten Zitat