“Kämpfen Sie nicht länger mit unpassender und starrer Software!

Lassen Sie sich beraten und finden Sie Ihre Lösung!”

» Waidner IT Solutions | Mainz/Wiesbaden | +49 176 10042345
Home » Lotus Notes » Performance-Optimierung von Lotus Notes Datenbanken

Performance-Optimierung von Lotus Notes Datenbanken

Sobald man in Lotus Notes eine Anwendung entwickelt, die etwas aufwändiger als die üblichen Dokumentenablagen ist, kommt man unweigerlich mit dem Thema Performance in Berührung. Früher oder später beschweren sich die Anwender, dass das neue Tool viel zu langsam ist. Die Admins merken, dass ihre Agenten nicht durchlaufen und die Offline-Nutzer ärgern sich über lange Replikationszeiten.
Doch Notes kann schnell…man muss nur wissen wie.
Neben der reinen Optimierung im Code auf die ich hier nicht eingehe (aber natürlich gerne durchführen oder erörtern kann) gibt es serverseitig eine Liste von Optionen, die sich positiv auf eine Datenbank auswirken können. Diese finden sich in den Datenbankeigenschaften auf dem letzten Reiter. Alle Optionen, die hier nicht beschrieben sind, haben auf die Performance keinen Einfluss.

  • Don’t maintain unread marks: ein – Sorgt dafür, dass keine ungelesen-Markierungen (die roten Sternchen) verwaltet werden. Wenn die Datenbank dies nicht benötigt, auf jeden Fall ausschalten.
  • Optimize document table map: ein – Verknüpft Dokumente mit ihrem Formular und sorgt bei allen Ansichtsformeln der Art „Form = xxx“ für eine Beschleunigung. Wenn Masken selten gewechselt werden, definitiv ein Plus.
  • Don’t overwrite free space: ein – Platz, den gelöschte Dokumente einnehmen, wird nicht sofort überschrieben. Ist für Datenbanken, die nicht absolut sicherheitskritisch sind, einzuschalten
  • Maintain last accessed property: aus – Wenn die Option eingeschaltet ist, werden auch Lesezugriffe protokolliert, was zu häufigeren Schreibzugriffen in der Datenbank führt.
  • Disable transaction logging: ein – Wenn es die Backup-Strategie erlaubt, dann kann diese Option aktiviert werden. Die Schreibzugriffe werden damit reduziert.
  • Don’t support specialized response hierarchy: ein – Wenn @AllChildren und @AllDescendants in der Datenbank nicht verwendet werden, kann dies aktiviert werden.
  • Use LZ1 compression for attachments: ein – Aktiviert ein neueres, schnelleres Komprimierungsverfahren für Dateianhänge.
  • Don’t allow headline monitoring: ein – Wenn die Datenbank keine headline-feeds unterstützen muss (und das müssen sicherlich die wenigsten, ich habe in meiner ganzen Notes-Laufbahn nicht einen Anwender gefunden, der dies verwendet hat), dann kann die Option eingeschaltet werden.
  • Allow more fields: aus – Bei deaktivierter Option dürfen alle Felder in der DB zusammen 64k nicht überschreiten, was für ca. 3000 Felder ausreicht. Reduziert die Größe der Datenbank und erhöht damit die Performance.
  • Support response thread history: aus – Hiermit erhalten Dokumente zusätzliche Felder, um Antworthierarchien zu unterstützen. Kann im Regelfall deaktiviert werden, außer man entwickelt ein Diskussionsforum.
  • Compress database design: ein – Reduziert die Datenbankgröße durch Komprimierung und damit Replikations- und Ladezeiten.
  • Compress document data: ein – Reduziert die Dokumentengröße durch Komprimierung und damit Replikations- und Ladezeiten.
  • Disable automatic updating of views: aus/ein – Wenn aktiviert, sorgt es dafür, dass Views automatisch aktualisiert werden. Für die Datenbank an sich ist dies positiv, da Ansichten schnell zur Verfügung stehen. Sind allerdings viele Datenbanken auf einem Server mit dieser Option ausgestattet, senkt es die Performance, da der Server mit der Aktualisierung nicht mehr nachkommt und ständig unter Last stehe.
  • Allow soft deletions: aus – Wenn man ein undo auf Löschungen nicht benötigt, dann sollte man dies deaktivieren.
  • Limit entries in $UpdatedBy fields: 3 – Wenn man keine detaillierte Protokollierung der Änderer eines Dokuments benötigt, kann man den Wert niedrig ansetzen.
  • Limit entries in $Revisions fields: 3 – Wenn eine hohe Replikationsfrequenz für die Datenbank vorhanden ist, oder überhaupt nicht repliziert wird, kann man diesen Wert reduzieren. Sehr niedrige Werte erhöhen die Chance von Replikationskonflikten.

Zusammengefasst sieht das ganze dann so aus:

Quellen für die Informationen ist u.a. IBM, kann man hier in Englisch nachlesen. Mehr Informationen finden sich auch hier in Deutsch. Details zur View-Aktualisierung stammen hierher.

Ein weiterer Schritt, um die Performance bei Datenbanken mit sehr hohen Dokumentzahlen und Dokumentlöschungen zu erhöhen, ist die Reduzierung der Löschmarkierungen. Um eine einwandfreie Replikation zu gewährleisten, speichert Notes bei jedem gelöschten Dokument eine Löschmarkierung und gibt diese bei Replikation an andere Server/Clients weiter, damit diese ebenfalls über Löschungen unterrichtet sind. Mal davon abgesehen, dass auch dieses Verfahren nicht 100% funktioniert (siehe hier den Artikel zu PIRC), sorgt es für eine Menge Einträge in der Datenbank. Diese kann man sich mit „show database kompletter/pfad/zur/datenbank.nsf“ auf der Serverkonsole anzeigen lassen. Ganz oben in der Liste tauchen die gelöschten Dokumente auf.

Reduzieren kann man diese wie folgt:

  • Replikationsoptionen der Datenbank aufrufen (Rechtsklick->Replication->Options…)
  • Reiter „Space Savers“ anwählen
  • Ganz oben in der Box für „Remove documents not modified…“ den eingetragenen Wert merken (im Regelfall 90)
  • Wert 0 eintragen
  • Den Haken AUF KEINEN FALL setzen, da er dafür sorgen würde, dass alte Dokumente komplett aus der Datenbank gelöscht werden
  • Dialog mit OK bestätigen
  • Die Optionen neu aufrufen, den Wert nun auf einen niedrigen Wert setzen oder den vorher gemerkten Wert eintragen. Lotus Domino hebt die Löschmarkierungen immer bis zu einem Drittel der hier eingetragenen Zeit auf.

Die Informationen stammen aus dieser Quelle.

Gerne stehe ich Ihnen für die Optimierung ihrer Datenbanken auf diese Art sowie natürlich auch für alle Fragen zur Performance-Verbesserung von Views oder Forms und dem in Datenbanken enthaltenen Programmcode zur Verfügung. Meine Kontaktinformationen für eine unverbindliche Anfrage finden Sie hier.