Bei aktiviertem Caching wird jede Abfrage dahingehend ausgewertet, ob sie sich für einen Cachetreffer qualifiziert.
Ein Cachetreffer bedeutet, dass Oracle Analytics Cloud die Abfrage mit dem Cache beantworten konnte und nicht auf die Datenbank zugreifen musste. In Oracle Analytics Cloud können Abfragen auf derselben oder einer höheren Aggregationsebene mit dem Abfragecache beantwortet werden.
Ob ein Cachetreffer vorliegt, hängt von mehreren Faktoren ab. In der nachstehenden Tabelle werden diese Faktoren beschrieben.
| Faktor oder Regel | Beschreibung |
|---|---|
|
Eine Teilmenge der Spalten in der |
Alle Spalten in der Diese Regel beschreibt die Mindestanforderung für einen Cachetreffer. Ein Erfüllen dieser Regel ist jedoch keine Garantie für einen Cachetreffer. Die anderen Regeln in dieser Tabelle gelten ebenfalls. |
|
Spalten in der |
In Oracle Analytics Cloud können Ausdrücke aus gecachten Ergebnissen als Antwort auf die neue Abfrage berechnet werden. Allerdings müssen dabei alle Spalten im gecachten Ergebnis enthalten sein. Beispiel: Die Abfrage: SELECT product, month, averageprice FROM sales WHERE year = 2000 ergibt Cachetreffer für die Abfrage: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 weil |
|
|
Für eine Qualifikation der Abfrage als Cachetreffer müssen die Constraints der Eine
Darüber hinaus müssen Spalten, die in der SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
Führt nicht zu einem Cachetreffer für die Seeding-Abfrage in der vorherigen Liste, weil REGION nicht in der Projektionsliste vorhanden ist. |
|
Ausschließlich dimensionsbezogene Abfragen müssen exakt übereinstimmen |
Wenn eine Abfrage ausschließlich dimensionsbezogen ist, d.h. dass keine Fakten oder Kennzahlen in der Abfrage enthalten sind, qualifiziert sich nur eine exakte Übereinstimmung der Projektionsspalten der gecachten Abfrage als Cachetreffer. Durch dieses Verhalten werden falsche positive Ergebnisse verhindert, wenn mehrere logische Quellen für eine Dimensionstabelle vorhanden sind. |
|
Abfragen mit Sonderfunktionen müssen exakt übereinstimmen |
Andere Abfragen, die Sonderfunktionen wie Zeitreihenfunktionen ( |
|
Set von logischen Tabellen muss übereinstimmen |
Für eine Qualifikation als Cachetreffer müssen alle eingehenden Abfragen dasselbe Set von logischen Tabellen wie der Cacheeintrag aufweisen. Mit dieser Regel werden falsche Cachetreffer vermieden. Beispiel: |
|
Werte von Sessionvariablen müssen übereinstimmen, darunter Sicherheitssessionvariablen |
Wenn die logische oder physische SQL-Anweisung eine Sessionvariable referenziert, müssen die Werte der Sessionvariablen übereinstimmen. Andernfalls liegt kein Cachetreffer vor. Darüber hinaus muss der Wert der sicherheitssensitiven Sessionvariablen auch dann mit den für das semantische Modell definierten Sicherheitssession-Variablenwerten übereinstimmen, wenn die logische SQL-Anweisung selbst keine Sessionvariablen referenziert. Siehe Korrekte Cacheergebnisse bei Verwendung der Datenbanksicherheit auf Zeilenebene sicherstellen. |
|
Übereinstimmende Join-Bedingungen |
Die resultierende verknüpfte logische Tabelle einer neuen Abfrageanforderung muss für eine Qualifikation als Cachetreffer mit den (oder mit einer Teilmenge der) gecachten Ergebnisse(n) identisch sein. |
|
|
Wenn eine gecachte Abfrage doppelte Datensätze mit |
|
Abfragen müssen kompatible Aggregationsebenen enthalten |
Abfragen, die eine aggregierte Ebene von Informationen anfordern, können gecachte Ergebnisse auf einer niedrigeren Aggregationsebene verwenden. Beispiel: Die folgende Abfrage fordert die verkaufte Menge auf Lieferanten- und Regions- und Ortsebene an: SELECT supplier, region, city, qtysold FROM suppliercity Die folgende Abfrage fordert die verkaufte Menge auf Ortsebene an: SELECT city, qtysold FROM suppliercity Die zweite Abfrage führt zu einem Cachetreffer für die erste Abfrage. |
|
Begrenzte zusätzliche Aggregation |
Beispiel: Wenn eine Abfrage mit der Spalte |
|
|
Abfragen, die nach Spalten sortieren, die nicht in der SELECT-Liste enthalten sind, führen zu Cachefehlschlägen. |
|
Verhalten für Cachetreffer diagnostizieren |
Um das Verhalten für Cachetreffer besser beurteilen zu können, setzen Sie die Sessionvariable ENABLE_CACHE_DIAGNOSTICS auf 4, wie im folgenden Beispiel dargestellt: ENABLE_CACHE_DIAGNOSTICS=4 |