Performance von Essbase und Planung Anwendungen verbessern

Es gibt viele Anwendungen, die mit der Zeit an Performance verlieren und dann gibt es zu Recht irgendwann klagende Benutzer. Die Abfragegeschwindigkeit, die Rechengeschwindigkeit und auch das Datenladen dauern dann immer länger und die Anwendung wird als Ganzes als langsam erfahren. Dann wird es höchste Zeit für den Admin tätig zu werden! Wie und was dieser tun kann, beschreibe ich in diesem Beitrag.

Pflege und Instandhaltung

Auch Software-Anwendungen müssen regelmäßig gepflegt werden. Denn nur so kann ein guter Betrieb gewährleistet werden. Einerseits sollten, wie im Wohnzimmer, die Objekte aufgeräumt werden. Wer kennt es nicht, dass man immer wieder Business Rules, Reports und anderes sieht, welche nie mehr verwendet werden. Mit dieser Pflege lässt sich die Benutzeroberfläche verbessern.

Dieses hilft in der Regel aber nicht bei der Leistung oder der Performance. Hierfür gibt es eine Reihe anderen Dingen, die geschehen sollten. Dieses sind:

  • Aufräumen von Dimensions-Elementen
  • Aufräumen von Daten
  • Löschen von leeren Blöcken
  • Defragmentieren

Ziel ist es, nur relevante Daten in der Anwendung zu haben. Denn im Allgemeinen kann man sagen: je weniger und besser sortiert die Daten, je schneller die Anwendung.

Aufräumen von Dimensions-Elementen

Der größte Vorteil wird erzielt bei Elementen einer Dense (Dichten) Dimension, denn diese gespeicherten Elemente bilden den Datenblock und dieser hat in der gesamten Datenbank immer denselben Aufbau. Wenn ein Datenblock nur ein kleines bisschen reduziert wird, dann hat dieses einen großen Einfluss auf die gesamte Größe der Datenbank.

Oft findet man auch Elemente, die irgendwann mal angelegt wurden, weil hierauf Daten landen sollten oder weil eine Person dieses in einen Bericht brauchte. Aber aktuell sind diese nicht mehr nötig und man sollte dann mit den Benutzern dieses auch besprechen. Letztlich ist es auch in deren Interesse.

Aufräumen von Daten

Oft gibt es in Anwendungen noch Daten die sich niemand mehr ansehen wird. So gibt es immer wieder 2 Sicherungskopien eines Forecasts von vor 3 Jahren. Diese werden Jahr ein und Jahr aus mitgeschleppt. Jeder Backup, jede Restrukturierung und bei vielen anderen Aktivitäten werden diese Daten immer wieder verarbeitet.

Auch hier sollte regelmäßig kontrolliert werden, welche Daten gibt es überhaupt und die Benutzer sollten angeben welche nicht mehr notwendig sind. Diese werden dann auch gelöscht denn unsere Software und Struktur der Anwendungen sind generell nicht für „Big Data“ ausgelegt.

Wenn der Betrieb sich nicht von seinen Daten trennen kann, dann können diese Daten auch in Archive ausgelagert werden, denn hier sind sie weniger zur Last im täglichen Betrieb.

Löschen von leeren Blöcken

Hierzu gibt es ein gutes Calc Script Kommando, welches weiter nichts macht, als leere Blöcke aus der Datenbank zu entfernen. Dieses ist CLEARBLOCK.  Einfach ohne FIX in der Datenbank ausführen, aber Achtung – nur mit dem Parameter EMPTY werden keine Daten gelöscht!

Der Prozess kann bei großen Datenbanken lange dauern, aber die Datenbank ist frei für Leseaktivitäten der Benutzer. Der Prozess kann auch parallel ausgeführt werden, also kann man mehrere Prozessoren gleichzeitig auslasten und damit die Rechenzeit verringern.

CLEARBLOCK EMPTY;

Wichtig ist es, nicht nur den Level 0 zu verarbeiten, denn auch im oberen Bereich kann es viele leere Blöcke geben.

Defragmentieren

Beim Dataload, Berechnen und kopieren von Daten tritt eine natürliche Defragmentierung oder Zerstückelung auf. Ein Datenblock, der sauber und logisch zwischen anderen stand, wird etwas größer und kann nicht mehr an seine originäre Stelle auf der Festplatte geschrieben werden. Kommt also an die erste Stelle, wo dieser wohl passt. Bei vielen Scheib- und Rechenoperationen verliert die Datenbank schnell seine optimale Struktur auf der Festplatte. Der Server muss seine Daten von weiter von verstreuten Plätzen holen. Dieses hat einen großen Einfluss auf die Geschwindigkeit bei den Abfragen, aber auch den Berechnungen und auch das Laden und Exportieren von Daten.

MaxL statement

alter database <NAME> force restructure;

Dieser Aufruf wird die gesamte Datenbank neu strukturieren und während dieser Prozess läuft, ist die Datenbank für alle Benutzer blockiert. Die gesamte Datenbank wird im Hintergrund neu aufgebaut, und wenn der Prozess erfolgreich war, wird das alte Original entfernt und die neue Kopie Live gesetzt.

Fazit

Das Aufräumen von Dimensionselemente und Daten kann nicht automatisiert werden. Bis eine AI (artificial intelligence) dieses richtig beurteilen kann, sodass dieses in unseren Essbase Datenbanken umsetzbar ist, wird es bestimmt noch etwas dauern. Die übrigen Schritte aber lassen sich automatisieren und periodisch ausführen. Hierdurch werden die Benutzer die Anwendung lange mit Erfolg benutzen.

Ihr Philip Hulsebosch

Veröffentlicht unter Essbase, Installation, Konfiguration & Tuning Getagged mit: , ,