Domino 9 und frühere Versionen > ND8: Entwicklung
Lotus Notes 8.5.2 Skript Verarbeitung ehrheblich langsamer als 7.0.2
koehlerbv:
Vielleicht ist es mit v8 aber noch schlimmer geworden, Peter?
Ich halte schon die eine Stunde für 15.000 (IIRC) Dokumente für sehr lange.
Bernhard
rabdos:
So hole ich mir die Dokumente
--- Code: --- Public Sub New(inView As NotesView, inLogFile As LogFile, profil As notesdocument)
Set logFile = inLogFile
Dim Doc As NotesDocument
Dim InstNr As String
Set Doc = inView.GetFirstDocument()
While Not (Doc Is Nothing)
Set item = Doc.GetFirstItem( "$Conflict" )
'Replizierkonflikte nicht bearbeiten
If item Is Nothing Then
InstNr = HolFeld(Doc, "KundenNr")
If Iselement(Institute(InstNr)) Then
Call Institute(InstNr).InsertLeitung(Doc, profil)
Else
Set Institute(InstNr) = New Institut(Doc, logFile, profil)
End If
End If
Set Doc = inView.GetNextDocument(Doc)
Wend
End Sub
--- Ende Code ---
Allerdings wusste ich das mit dem GetNth nicht. Das nutzt ich sicherlich in dem einem oder andere Skript ::)
Das werde ich mir dann einmal merken.
Ich habe den Profiler nun am Start und jetzt auch endlich verstanden wie der funktioniert. Bin gerade in den Tests und Analysen zugange.
pedsola:
nochmal kurz zum Verständnis.
Der Agent läuft lokal auf Deinem Notes Client und schreibt dann lokal 6 Dateien raus, richtig ?
Oder läuft da doch irgendwas auf dem Server und wird mit runonserver getriggert ?
atbits:
Schalte mal inView.AutoUpdate = False
Sonst wird ständig der View Index aktualisiert ...
Wenn Du das benötigst würde ich das alle 1000 Dokumente oder so per Script machen.
inView.refresh
Aber vermutlich wirds nicht gebraucht
marschul:
Sind die Dokumente groß?
Ich hatte nämlich mal ein Problem mit nur sehr wenigen Dokumenten, die waren aber riesig, weil die Anwender Bilder per Copy & Paste und anschließender Skalierung (verkleinern) in die Body-Felder gepackt hatten. Das ist so ziemlich das Uneffektivste, was man machen kann, durfte den Anwendern aber (weil zu kompliziert) nicht abgewöhnt werden (besser wäre Bild vorher auf vernünftige Größe für Bildschirmanzeige runterrechnen und anschließend über Datei \ Importieren in das Feld laden, dann wird's nativ im Richtext abgelegt und das Dok bleibt relativ klein).
Ergebnis war, dass ein Agent, der über alle Dokumente rannte, extrem lange brauchte, weil zum Auslesen von ein paar Feldinhalten (nicht die Richtexte) die Dokumente über die Methode set doc = view.getnextdocument komplett in den Speicher geladen werden.
Lösung:
Habe die relevanten Felder in Spalten einer Suchansicht gepackt und bin über die NotesViewEntries gegangen, d.h. Werte direkt aus dem Ansichtsindex auslesen. Zeitersparnis: Faktor > 100.
Das sollte sich auch auf die hier gezeigte Methode anwenden lassen, es sei denn, die Bremse liegt in der Klasse Institute und den Methoden InsertLeitung bzw. New .
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln