Autor Thema: Performance - Dokumente durchloopen  (Gelesen 1900 mal)

Offline AleX_-_

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Performance - Dokumente durchloopen
« am: 15.01.13 - 11:18:56 »
Hallo zusammen,
kennt jemand eine Möglichkeit mit der man eine NotesDocumentCollection schneller durchloopen könnte?

Im Moment setzte ich immer folgendes ein:
Set nd = nc.Getfirstdocument()
While Not (nd Is Nothing)
  ...
  Set nd = nc.Getnextdocument(nd)
Wend


Dies dauert bei 40.000 Dokumenten schon mal 3 Minuten.

Danke für die Hinweise
AleX

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Performance - Dokumente durchloopen
« Antwort #1 am: 15.01.13 - 11:29:41 »
Woher kommt die Notesdocumentcollection?
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Performance - Dokumente durchloopen
« Antwort #2 am: 15.01.13 - 11:32:02 »
Wenn die collection aus einer View kommt, nimm den ViewNavigator. Viel schneller, weil direkt auf die Werte in der View zurückgegriffen werden kann und nicht erst das Dokument "geöffnet" wwerden muss. Die Spalten müssen dann so aufgebaut werden, daß sie die gewünschten Werte enthalten.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Performance - Dokumente durchloopen
« Antwort #3 am: 15.01.13 - 11:40:36 »
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Performance - Dokumente durchloopen
« Antwort #4 am: 15.01.13 - 11:42:00 »
Unsere Server schaffen in so einer Schleife ~300-600 Dokumente pro Sekunde.
40000/300 wären dann 133 sec. Was > 2 min entspricht und somit deinen Wert bestätigt.

Clients sind hier langsamer und hängen sehr stark von der Netzwerklatenz ab. (Über eine WAN Verbindung mit 40ms Ping Zeit schafft man nur noch in der Größenordnung von 10 Dokumenten)

und wie Ulrich schon schrieb ist der ViewNavigator hier deutlich schneller... so lange man nicht auf entry.document zugreift, sondern nur Spalten ausliest.
Achtung, Stolperfalle: die Rückgabe von "entry.columnvalues(x)" kann entwender ein skalarer Wert sein (wenn nur ein Wert in der Spalte steht) oder ein Array, wenn es sich um Mehrfachwerte handelt und auch tatsächlich mehr als ein Wert vorhanden ist.

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline AleX_-_

  • Aktives Mitglied
  • ***
  • Beiträge: 133
  • Geschlecht: Männlich
Re: Performance - Dokumente durchloopen
« Antwort #5 am: 15.01.13 - 12:32:12 »
Danke für die Info. Das mit den NotesViewEntry war mir bereits bekannt.
Ich muss aber die Collection über '.search' laden, da ich ganz verschiedene Suchanforderungen auf die Datenbank habe.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz