Autor Thema: Performance Dokumentenvergleich  (Gelesen 2470 mal)

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Performance Dokumentenvergleich
« am: 22.11.16 - 06:54:57 »
Hallo,

In einer DB sind 1000 fixe Dokumente. Diese müssen mehrmals täglich mit ca. 100 weiteren Docs verglichen werden. Wird ein Doc in den 1000 gefunden, wird ein Feld auf True gesetzt. Bei den restlichen 900 soll der Parameter auf false gesetzt werden.

Wie ist da der beste Ansatzpunkt? Alle 1000 Docs in eine Collection und diese 100 mal durchlaufen?

Für einen Tipp wäre ich dankbar.

Offline ghostmw

  • Aktives Mitglied
  • ***
  • Beiträge: 201
  • Geschlecht: Männlich
    • BELOS - Raum+Ressourcenmanagement unter Lotus Notes
Re: Performance Dokumentenvergleich
« Antwort #1 am: 22.11.16 - 08:17:52 »
Guten Morgen,

ich denke, um das ganze noch halbwegs performant zu gestalten, wäre folgendes denkbar:

Du holst dir von den 100 Dokumenten einen eindeutigen Schlüssel (den gibt es sinnvollerweise auch in den 1000 Dokumenten) und einen Hashwert (Summe aller zu vergleichenden Felder) in eine Liste, sowas in der Richtung
Code
lstMeineListe ( "Schlüssel" ) = "Hashwert"
.

Mit dieser Liste gehst du deine 1000 Dokumente durch, sowas wie (ist Pseudocode, du musst das ganze noch in LotusScript übersetzen).

Code
While not doc is nothing
     if isElement ( lstMeineListe ( "Schlüssel vom doc" ) ) then 
            if Hashwert ( doc) = lstMeineListe ( "Schlüssel vom doc" ) then 
                  Setze true Flag im doc
            else
                  Setze false Flag im doc
            end if 
    else
            Setze false Flag im doc
    end if 
    set doc = nächstes Dokument
wend

So sollte es halbwegs performant laufen.

Da ich leider nicht weiß, wie dein Vergleich aussieht, habe ich mal angenommen, dass du nur eine Hand voll Felder vergleichen willst.

Gruß
Marco
Grüße
Marco Weller
Lotus Domino / Lotus Notes seit 1996 (ab 4.5x)

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Performance Dokumentenvergleich
« Antwort #2 am: 22.11.16 - 08:41:33 »
Wäre es nicht auch eine Möglichkeit, nur die Dokumente zu prüfen, die seit dem letzen Check geändert wurden? (etwa Notesdoc.LastModified <= 10 Stunden)

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Performance Dokumentenvergleich
« Antwort #3 am: 22.11.16 - 08:47:01 »
Das schnellste wird sein alle Docs in eine Collection.
Eine zweite Collection bilden.
Alle Docs die umgesetzt werden müssen in die zweite Collection rein und dann ein Stampall aufrufen.
Unter der Voraussetzung das wirklich nur das eine Feld geändert werden muss.

Es gibt auch noch Stampallmulti aber das ist dann etwas aufwendiger.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: Performance Dokumentenvergleich
« Antwort #4 am: 22.11.16 - 10:06:49 »
 ??? :-: (sorry - zu früh, zu wenig Kaffee... )

Meine Fragen:
- NACH dem Vergleich sollen immer alle 1000 Dokumente (adoc) einen aktuellen Stand haben. In einem Dokument wird ein Item "flag" gesetzt, entweder True oder False - ja?
- was genau willst Du wie vergleichen?

Für das "Stampen" würde ich vermutlich im ersten Schritt auch StampAll versuchen, das ist wirklich ziemlich schnell.

Aber ich denke, das Vergleichen wird Dein eigentliches Performance-Thema sein. Bitte erzähle genauer, was Du eigentlich machen willst.

Gruss,
Th.

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Performance Dokumentenvergleich
« Antwort #5 am: 22.11.16 - 10:22:07 »
Ich würde im Übrigen auf jeden Fall die Dokumente einzeln durchlaufen und nicht mit Stampall arbeiten. Denn dann kannst Du prüfen, ob sich überhaupt was geändert hat am Dokument und nur dann speichern... So sparst Du Dir jede Menge Speicheroperationen, und wenn es um Performance geht, ist das eines Deiner grössten Bottlenecks...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz