Cachemodus
Der Cachemodus bestimmt, ob und auf welche Weise die durch den OLAP-Prozessor berechneten Query-Ergebnisse und Navigationszustände als hochkomprimierte Daten in einem Cache gespeichert werden sollen.
Der jeweilige Modus kann im Customizing zu einem InfoProvider als Standardwert und im Querymonitor zu einer Query festgelegt werden.
Caching ist ein Mittel zur Verbesserung der Query-Performance. Achten Sie jedoch auf ein Gleichgewicht zwischen Nutzen und Kosten:
● Nutzen: Caching verbessern die Antwortzeit von Queries
● Kosten: Aufwand zum Aufbau und Halten der Daten im Cache
Sie können die Cache-Daten im Hauptspeicher, auf einem Applikationsserver oder im Netz verteilt halten. Welche Möglichkeit Sie wählen, hängt von verschiedenen Parametern ab. Zu berücksichtigen sind z.B.:
● Häufigkeit der Queryabfrage
Wir empfehlen, Queries, die besonders oft abgefragt werden, im Cache zu speichern. Hauptspeicher-Cache ist besonders schnell, in der Größe aber begrenzt; die Auslagerung von gecachten Daten hebt die Begrenztheit des Hauptspeichers zwar auf, hat aber Auswirkungen auf die Performance. Für den persistenten Cache stellt der auf der Datenbank oder in dem Dateisystem zur Verfügung stehende Speicherplatz praktisch keine Einschränkung dar. In Hinsicht auf die Performance ist der direkte Zugriff auf die komprimierten Daten im persistenten Cache ebenfalls sehr leistungsstark.
● Komplexität der Query
Caching bringt insbesondere bei solchen Queries einen Performance-Gewinn, deren Berechnung einen hohen Aufwand bedingt. Wir empfehlen, vom OLAP-Prozessor aufwendig aufbereitete Daten im Cache zu halten. (Daher ist z.B. der Cachemodus Hauptspeicher Cache ohne Swapping für solche Queries wenig geeignet.)
● Häufigkeit des Datenladens
Wenn sich queryrelevante Daten oft ändern und dementsprechend oft geladen werden, bringt die Verwendung des Caches kaum einen Gewinn: Der Cache muss jedes Mal neu aufgebaut werden. Wenn die gecachten Daten im Hauptspeicher gehalten werden, können dadurch die Daten von häufig abgerufenen Queries verdrängt werden; ihr Aufruf erfordert anschließend wiederum mehr Zeit.
...
Cache ist inaktiv (0)
Der globale Cache wird gezielt abgeschaltet. In diesem Fall arbeitet das System ausschließlich mit dem lokalen Cache, siehe OLAP-Cache-Monitor.
Wenn der globale Cache eingeschaltet ist, empfehlen wir, einen der folgenden Cachemodi zu verwenden:
Hauptspeichercache ohne Swapping, Cachemodus 1
Die Cache-Daten liegen im Hauptspeicher. Wenn der für das Caching zur Verfügung stehende Speicher verbraucht ist, werden Daten nach dem LRU-Algorithmus verdrängt, d.h. aus dem Speicher gelöscht. Bei einer erneuten Queryanfrage muss das Ergebnis erneut aus dem InfoProvider gelesen werden.
BLOB/Cluster erweitert, Cachemodus 5
Die Cache-Daten liegen persistent in Datenbanktabellen. In diesem Modus gibt es keine Verdrängung und Begrenzung der Speichergröße. Dadurch wird zwar mehr Platz beansprucht, aber auch Zeit gespart.
○ Datenbanktabelle: Die Last trägt die Datenbankinstanz, auf der die Tabelle liegt.
○ Hinzu kommen bei beiden Ablagetypen der Applikationsserver, der die Daten ausrechnet, und die Netzwerkkommunikation.

Grundsätzlich empfehlen wir, die Standardeinstellung BLOB/Cluster erweitert (Cachemodus 5) zu verwenden. Lediglich in Fällen, wo eine lokale Speicherung der Daten auf dem jeweiligen Anwendungsserver gewünscht ist, sollte auf den Hauptspeichercache (Cachemodus 1) ausgewichen werden.
Die übrigen älteren Modi sind nur aus Kompatibilitätsgründen weiterhin im System verfügbar:
Hauptspeicher Cache mit Swapping, Cachemodus 2
Die Cache-Daten liegen im Hauptspeicher. Wenn der für das Caching zur Verfügung stehende Speicher verbraucht ist, werden die zu verdrängenden Daten auf einen Hintergrundspeicher geschrieben und können bei einer erneuten Anfrage wieder in den Cache-Speicher geladen werden.

Nachdem queryrelevante Daten erneut geladen wurden, kann der Hintergrundspeicher nicht mehr verwendet werden.
Persistenter Cache pro Applikationsserver, Cachemodus 3
Die Cache-Daten liegen persistent als Datenbanktabelle oder als Datei in einem vom Applikationsserver erreichbaren Verzeichnis. Wir empfehlen, ein nahe am Applikationsserver liegendes Verzeichnis zu wählen.
Wenn Sie die Cache-Daten in einer Datenbanktabelle speichern, belastet dies zwar auch die Datenbank, ist gegenüber dem Zugriff auf nicht gecachte Daten in der Datenbank aber deutlich schneller. Im Vergleich zur Ablage der Daten z.B. im Sternschema (siehe Sternschema) werden weniger Tabellen gelesen und weniger Indizes zugegriffen.
Persistenter Cache Applikationsserver übergreifen, Cachemodus 4
Die Cache-Daten liegen persistent als Datenbanktabelle oder als Datei applikationsserverübergreifend in einem vom Applikationsserver zugreifbaren Dateisystem im Netz. In diesem Modus gibt es keine Verdrängung und Begrenzung der Speichergröße. Dadurch wird zwar mehr Platz beansprucht, aber auch Zeit gespart.
¡ Datenbanktabelle: Die Last trägt die Datenbankinstanz, auf der die Tabelle liegt.
¡ Datei: Die Last trägt das Betriebssystem des Netzknotens, auf dem die Datei liegt.
¡ Hinzu kommen bei beiden Ablagetypen der Applikationsserver, der die Daten ausrechnet, und die Netzwerkkommunikation.
Die folgende Tabelle gibt einen vergleichenden Überblick über die Cachemodi 1-5:
Modi des aktiven Caches
Eigenschaft |
Hauptspeicher-Cache |
BLOB/Cluster erweitert |
Hauptspeicher-Cache mit Swapping |
Persistenter Cache pro Applikationsserver |
Persistenter Cache applikationsserver-übergreifend |
Cachemodus |
1 |
5 |
2 |
3 |
4 |
Verdrängung |
ja (LRU-Algorithmus und Löschen) |
nein |
ja (LRU-Algorithmus mit Auslagerung) |
nein |
nein |
Swapping |
nein |
nein |
ja |
nein |
nein |
Globale Cache-Größe |
begrenzt |
nicht begrenzt |
Hauptspeicher begrenzt, ausgelagerte Teile nicht begrenzt |
nicht begrenzt |
nicht begrenzt |
Vorteile des Cachemodus 5 BLOB/Cluster erweitert
Die Verarbeitung und die Speicherung der Daten hat sich bei diesem Cachemodus im Vergleich zu den oben genannten (älteren) Cachemodi 2-4 grundlegend geändert. Es wird kein Sperrkonzept verwendet. Auf ein zentrales Verzeichnis der Cache-Elemente wird verzichtet. Durch seine verbesserte Verzeichnis-Struktur behebt der Cachemodus 5 BLOB/Cluster erweitert bekannte Probleme durch Enqueue-Locks. Insbesondere die Modi Persistenter Cache pro Applikationsserver sowie Persistenter Cache applikationsserverübergreifend werden hierdurch obsolet. Gleichzeitig ist die Performance dieses Cachemodus dem des Hauptspeichercaches gleichwertig bzw. bei steigender Anzahl von Cache-Objekten sogar deutlich überlegen; ein Swapping ist nicht mehr sinnvoll.
Der Cachemodus 5 BLOB/Cluster erweitert hat keinen eigenen Persistenzmodus, sondern nutzt automatisch für die Ablage der Cache-Einträge mit Querydaten eine Cluster-Tabelle bzw. eine BLOB-Ablage (Tabelle mit XSTRING-Bereich), siehe Cache-Administrationsparameter.
Für die Cachemodi 2-4 können Sie festlegen, wie die verdrängten bzw. gecachten Daten abgelegt werden sollen. Weitere Informationen über die Persistenzmodi finden Sie unter Cache-Parameter.
Weitere Informationen über die verschiedenen Möglichkeiten, den Cachemodus für einen InfoProvider bzw. für eine Query festzulegen, finden Sie unter Query-Eigenschaften.
Weitere Informationen über die Funktionsweise des OLAP-Caches, die Cache-Parameter und die Cache-Administrationsparameter sowie insbesondere über die Aktivierung des empfohlenen Cachmodus BLOB/Cluster erweitert finden Sie unter OLAP-Cache-Monitor.