Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: jo@chim am 07.02.13 - 14:42:53

Titel: Geschwindigkeit view.getalldocumentsbykey vs. view.ftsearch
Beitrag von: jo@chim am 07.02.13 - 14:42:53
Per Query über eine Beispielmaske mit 10 Feldern ein Collection von max. 1.000 Dokumenten (normalerweise ca. 200-300) aus einer Ansicht mit max. 15.000 Dokumenten generieren und einen Stamp setzen...

... Lösungsmöglichkeit 1: Suche per view.getallldocumentsbykey(array...  in einer Ansicht mit 10 kategorisierten Spalten für die Suchfelder

...Lösungsmöglichkeit 2: view.FTSearch(...

Was würdet Ihr empfehlen? Ist FTSearch tatsächlich wesentlich schneller?

(btw: gibts irgendwo eine ordentliche Übersicht über die SELECT Syntax von FTSearch? Ich habe nix g'scheits gefunden)
Titel: Re: Geschwindigkeit view.getalldocumentsbykey vs. view.ftsearch
Beitrag von: Peter Klett am 07.02.13 - 14:50:13
Bei FTSearch ist wichtig zu wissen, dass der temporäre Index bei einer nicht-indizierten Datenbank maximal 5.000 Dokumente verarbeiten kann. Die Datenbank muss deshalb zwingend einen FT-Index besitzen.

Ich persönlich bin ja ein Fan von db.Search, spart die Ansicht und ist sehr flexibel, ob das performanter ist, kann ich aber nicht sagen. Vielleicht einen Gegenversuch wert ...
Titel: Re: Geschwindigkeit view.getalldocumentsbykey vs. view.ftsearch
Beitrag von: koehlerbv am 07.02.13 - 14:55:32
(btw: gibts irgendwo eine ordentliche Übersicht über die SELECT Syntax von FTSearch? Ich habe nix g'scheits gefunden)

Die steht in der Client-Hilfe  ;)

Das GetAllDocumentsByKey würde ich ausschliessen (wegen der dazu erforderlichen Ansicht).

Ich würde - wie Peter - auch ein dbSearch in Betracht ziehen.

Bernhard
Titel: Re: Geschwindigkeit view.getalldocumentsbykey vs. view.ftsearch
Beitrag von: jo@chim am 07.02.13 - 15:07:08
Ok, danke...

... bzw.: db.search oder view.ftsearch?!

Die DB hat wesentlich mehr als die genannten 10k Doks - das sollte doch eine Ansicht mit entsprechender Vorauswahl erheblich schneller sein, oder?
Titel: Re: Geschwindigkeit view.getalldocumentsbykey vs. view.ftsearch
Beitrag von: Peter Klett am 07.02.13 - 15:28:35
Eine Ansicht muss permanent vom Server aktualisiert werden, ein db.Search braucht keine und nutzt quasi eine temporär erstellte (anhand der Selektionsformel, die man dem Befehl übergibt).

Ohne das jemals gemessen zu haben, wage ich zu behaupten, dass ein view.Refresh, den ich vor solch einem Zugriff über eine Ansicht vorsichtshalber ausführen würde, nicht viel weniger Zeit kostet, als eine temporär erstellte "Ansicht" im db.Search, spart dem System aber die Verwaltung dieser sonst nicht notwendigen Ansicht.
Titel: Re: Geschwindigkeit view.getalldocumentsbykey vs. view.ftsearch
Beitrag von: koehlerbv am 07.02.13 - 15:39:31
So "richtig" wird dabei nicht mal eine wirkliche temporäre Ansicht gebaut. Und: Viele erforderliche Infos kommen aus internen Tabellen.

Was jeweils das schnellste ist, hängt auch vom Aufbau der DB ab. Es lohnt sich, das mit Echtdaten auszutesten.
Wofür man sich entscheidet, hängt aber auch stark von dem ab, was und wie man sucht. Der FTI bockt zuweilen oder er wird korrupt oder unvollständig. Mit GetAllDocumentsByKey kann ich kein Contains verwenden oder > oder < oder "enthält nicht" etc.
dbSearch kann auch zu zeitaufwändig sein (durchaus!).

Bernhard
Titel: Re: Geschwindigkeit view.getalldocumentsbykey vs. view.ftsearch
Beitrag von: jo@chim am 07.02.13 - 15:40:46
Danke Euch beiden  :)