Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: bikerboy am 18.02.09 - 15:46:22

Titel: viele Dokumente vergleichen
Beitrag von: bikerboy am 18.02.09 - 15:46:22
Hallo zusammen,

wenn ihr viele Dokumente in 2 DBs vergleichen wolltet würdet ihr die Dokumente mit einen Walk the View durchgehen oder eher über die Entrys .

Ich persönlich würde eine Walk the View machen. Mein Kollege nimmt aber die Entrys. Was ist denn nun besser ?
Titel: Re: viele Dokumente vergleichen
Beitrag von: jBubbleBoy am 18.02.09 - 15:53:53
Entrys sind auf jeden Fall schneller :) und eleganter!
Titel: Re: viele Dokumente vergleichen
Beitrag von: bikerboy am 18.02.09 - 15:54:26
Warum ?
Titel: Re: viele Dokumente vergleichen
Beitrag von: m3 am 18.02.09 - 16:02:49
Kommt IMHo u.a. drauf an
a) wie man durchstept (GetNthDocument ist böse)
b) ob die Daten, die man über den Entry bekommt reichen, oder ob man erst recht wieder das Dokument öffnen muss - dann würd ich gleich über die view gehen.
Titel: Re: viele Dokumente vergleichen
Beitrag von: jBubbleBoy am 18.02.09 - 16:04:24
Bei Entrys durchläufst Du den Ansichtsindex, das ist eine fertige Tabelle. Bei View-->Dokument musst Du dir noch das Dokument aus der DB holen und im Dokument dann noch das Feld raussuchen... . Das dauert etwas, nicht viel aber summiert sich über die Anzahl vieler Dokumente.
Titel: Re: viele Dokumente vergleichen
Beitrag von: bikerboy am 18.02.09 - 16:36:40
Naja nun sind aber nicht alle informationen in der ansicht vorhanden, also muss man dann früher oder später eh ans dokument oder ?

@m3

Das mit nTh-Document ist mir bekannt.

Ein Freund meinte letztens dass GetGetLastDocument sogar schneller ist als GetFirstDocument, kann das jemand hier bestätigen.
Titel: Re: viele Dokumente vergleichen
Beitrag von: jBubbleBoy am 18.02.09 - 16:38:59
Das ist natürlich richtig, wenn man mit Entrys arbeitet sorgt man auch dafür dass alle Infos in der Ansicht sind, ansonsten wäre das "Gewollt und nicht gekonnt"!
Titel: Re: viele Dokumente vergleichen
Beitrag von: koehlerbv am 19.02.09 - 21:59:44
"Entrys" ist aber ein sch**ss-Englisch. Wenn schon: "Entries". Bitte ...  ;)

Robert: Was nun schneller ist,  kommt auf Deine Rahmenbedingungen an. Wenn Du erste Hinweise ("Da muss was sein") schon über eine View bekommst, dann würde gelten: Erst so, dann weiter eben anders. Wenn das prinzipiell nicht gilt: Dann ist sind die ViewEntries doch sowieso ausgeschlossen. Ist das nicht offensichtlich?

Was das Laufzeitverhalten "GetFirstEntry vs. GetLastEntry" angeht: Wie hat der Knabe denn das gemessen? Das kommt alles auch der gleichen internen Table zur View, und welche NoteID jetzt gezogen werden soll - egal (in diesem Fall). Welche Rolle sollte das spielen? First or Last - hier geht es nur um Bruchteile von Millisekunden. Es lohnt nicht, darüber zu debattieren.

Bernhard

PS: Auf die Fortsetzung dieses Threads bin ich mal wieder gespannt  ;)
Titel: Re: viele Dokumente vergleichen
Beitrag von: Kristina am 20.02.09 - 09:04:42
Hallo ihr

um noch mal auf den ursprünglichen Eintrag zurückzukommen, es ging darum viele Dokumente in 2 DB's miteinander zu vergleichen.
Wie bekommt man das schnell.
ein paar Dinge dazu :
- erstens: ich muss einen Weg finden, nicht jedes Dokument mit jedem vergleichen zu müssen.
- zweitens: bei Dokumenten ist leichter zu entscheiden, dass sie verschieden sind, als das sie gleich sind. -> Spricht für Entries. Ein gezielt ausgewähltes item reicht.
- drittens: wenn es schnell sein soll, ist mir "elegant" sch****egal.


Kristina¨




Titel: Re: viele Dokumente vergleichen
Beitrag von: eknori am 20.02.09 - 09:29:16
Um eine grosse Menge an Dokumente zu vergleichen, hat Andrew Pollack bereits 2003 was geschrieben. Zusammensuchen müsst ihr euch das aber selber.
http://www.thenorth.com/apblog4.nsf/0/5F6A05E49BDB349285256EBC0054545B
Titel: Re: viele Dokumente vergleichen
Beitrag von: LN4ever am 23.02.09 - 11:23:20
Zum Verweisartikel von eknori:

Wenn man statt dem Evaluate(@Password(string))

ein

notesSession.HashPassword( String )

nimmt, umgeht man damit die petenziellen Fallen der String-Delimeter.

Gruß

Norbert
Titel: Re: viele Dokumente vergleichen
Beitrag von: koehlerbv am 23.02.09 - 23:03:58
Kristina, die Diskussion bleibt solange rein theoretisch (nicht unbedingt hilfreich bei einem solch weiten Feld), bis Du zumindest ansatzweise ansagst, was Du vergleichen musst. Vielleicht kommen da dann ja auch noch Aspekte wie Normierung, Vorauswahl etc. hinzu.

Kannst Du etwas praktischer werden?

Bernhard
Titel: Re: viele Dokumente vergleichen
Beitrag von: bikerboy am 24.02.09 - 10:40:03
Also ich habe jetzt für mich einen Weg gefunden, der funktioniert.

Ich gehe in DB1 hole mir alle dokumente per getalldocumentsbykey.... so habe ich einen massigen zugriff auf die db.

die darausresultierende doccoll gehe stück für stück durch und erstelle eine anhand einer vorher definierten fieldlist einen string mit allen gewünschten feldern spereiert durch einen delimiter.
als listtag habe ich einen schlüssel angeben.

wenn ich diese eine riesiege liste fertig habe gehe ich in die andere db mache ein walk the view und gucke gibt es den schlüssel in der liste, wenn ja baue ich den wieder einen datenstring zusammen , dann vergleiche ich die beiden strings und erst wenn dann noch ein unterschied besteht gucke ich mir die strings genauer an und kann dann feststellen wo der unterschied ist.

wenn ich einen eintrag in der liste gefunden habe entferne ich den eintrag aus der liste damit ich wieder speicher frei gebe.

das ganze dauert bei 300.000 dokumenten bei 10 felder rund 44 min , womit ich persönlich sehr zufrieden bin