Aufwändige Prozesse, die nicht direkt während einer Nutzeraktion ausgeführt werden müssen, lassen sich an zeitgesteuerte Agenten auslagern. Dazu muss möglicherweise nur ein entsprechendes Flag gesetzt werden und alles weitere passiert dann im Hintergrund, ohne dass der Nutzer unnötig warten muss.
Arbeitet der Nutzer auf einer Server-Datenbank und ist seine Anbindung nicht optimal, können aufwändige Berechnungen sehr lange dauern. Ist (im Gegensatz zum vorigen Absatz) eine sofortige Berechnung nötig, kann man diese in einen Agenten auslagern und diesen per RunOnServer ausführen. Erst, wenn der Agent fertig ist, überträgt er die Ergebnisse an den Client, sodass nur wirklich relevante Datenströme fließen.
Innerhalb von zeitgesteuerten Agenten kommt es häufig nicht auf die allerbeste Optimierung an, da diese im Hintergrund meistens genügend Zeit haben, ihren Dienst zu verrichten. Bei aufwändigen Operationen wie dem Vergleich großer Datenmengen kann man dem Agenten die Arbeit jedoch per Hashes (= nahezu eindeutige Schlüsselwerte) deutlich vereinfachen. Dazu bildet man beispielsweise über ganze Textabsätze oder die Kombination vieler Feldwerte einen Hashwert (z. B. beim Speichern eines Dokumentes per @Password). Dann muss der Agent nur noch einen einzigen, kurzen String vergleichen, um zu entscheiden, ob weitere Operationen nötig sind.
Bei der Bearbeitung großer Dokumentmengen ist zudem darauf zu achten, dass nur notwendige Operationen durchgeführt werden. Besonders kostspielige Operationen sind:
- Speichern von Dokumenten: Statt in jedem Agentendurchlauf jedes Dokument zu speichern, sollte man dies nur tun, wenn sich tatsächlich relevante Feldwerte geändert haben
ComputeWithForm: Je mehr Felder sich ändern, desto mehr hat der Domino-Server zu tun. Wenn also nur einige wenige Felder wirklich ein Update benötigen, sollten diese punktuell durch den Programmcode vorgenommen werden.- Löschen von Dokumenten: Unnötige Deletions Stubs sind, wie in Teil 1 beschrieben, zu vermeiden. Insbesondere sollte man deshalb bei Agenten darauf achten, bestehende Dokumente zu aktualisieren, statt sie "der Einfachheit halber" zu löschen und neu anzulegen.
- Verschachtelte Schleifen: Ihre Verarbeitungzeit wächst mit der Menge der zu verarbeitenden Informationen. Oft gibt es bessere Algorithmen oder kreative Wege, solche Konstrukte zu vermeiden.