Abfrage-Caching verwalten

In Oracle Analytics Cloud wird ein lokaler Cache der Abfrageergebnissets im Abfragecache beibehalten.

Themen:

Abfragecache

Mit dem Abfragecache können viele aufeinanderfolgende Abfrageanforderungen in Oracle Analytics Cloud verarbeitet werden, ohne dafür auf Backend-Datenquellen zugreifen zu müssen. Dadurch wird die Abfrageperformance verbessert. Die Abfragecacheeinträge können jedoch auch veraltet sein, wenn die Backend-Datenquellen aktualisiert wurden.

Vorteile des Cachings

Die schnellste Methode zur Verarbeitung einer Abfrage besteht darin, einen Großteil der Verarbeitung zu überspringen und eine vorberechnete Antwort zu verwenden.

Beim Abfrage-Caching werden die vorberechneten Ergebnisse von Abfragen in Oracle Analytics Cloud in einem lokalen Cache gespeichert. Wenn diese Ergebnisse von einer anderen Abfrage verwendet werden können, entfällt die gesamte Datenbankverarbeitung für diese Abfrage. Dies kann zu deutlichen Verbesserungen bei der durchschnittlichen Abfrageantwortzeit führen.

Durch das Beantworten einer Abfrage aus einem lokalen Cache erhalten Sie nicht nur eine bessere Performance, sondern Sie sparen auch Netzwerkressourcen und Verarbeitungszeit beim Datenbankserver. Netzwerkressourcen werden gespart, weil keine Zwischenergebnisse an Oracle Analytics Cloud zurückgegeben werden. Wenn keine Datenbankabfrage ausgeführt wird, kann der Datenbankserver diese freien Kapazitäten für andere Aufgaben nutzen. Wenn die Datenbank ein Rückbelastungssystem verwendet, kann die Ausführung von weniger Abfragen auch zu einer Senkung der Kosten im Budget führen.

Ein weiterer Vorteil beim Beantworten von Abfragen mithilfe des Cache besteht darin, dass Sie Verarbeitungszeit in Oracle Analytics Cloud einsparen können, insbesondere wenn die Abfrageergebnisse aus mehreren Datenbanken abgerufen werden. Je nach Abfrage findet auf dem Server eine beträchtliche Join- und Sortierverarbeitung statt. Wenn die Abfrage bereits berechnet wurde, wird diese Verarbeitung vermieden, und es werden Serverressourcen für andere Aufgaben freigegeben.

Zusammenfassend kann das Abfrage-Caching die Abfrageperformance deutlich verbessern und gleichzeitig den Netzwerktraffic, die Datenbankverarbeitung und den Verarbeitungs-Overhead reduzieren.

Kosten des Cachings

Das Abfrage-Caching hat viele naheliegende Vorteile, geht aber auch mit bestimmten Kosten einher.

  • Gecachte Ergebnisse sind möglicherweise veraltet

  • Administrative Kosten für das Management des Cache

Beim Cachemanagement überwiegen die Vorteile normalerweise die Kosten deutlich.

Administrative Aufgaben für das Caching

Einige administrative Aufgaben gehen mit Caching einher. Sie müssen die Cachepersistenzzeit für jede physische Tabelle richtig festlegen. Dabei müssen Sie wissen, wie oft die Daten in dieser Tabelle aktualisiert werden.

Wenn die Häufigkeit der Aktualisierung unterschiedlich ist, müssen Sie verfolgen, wann die Änderungen vorgenommen werden, und den Cache gegebenenfalls manuell löschen.

Cache auf dem aktuellen Stand halten

Wenn die Cacheeinträge bei Datenänderungen in den zugrunde liegenden Datenbanken nicht gelöscht werden, können Abfragen unter Umständen veraltete Ergebnisse zurückgeben.

Sie müssen entscheiden, ob diese Tatsache akzeptabel ist. Sie ist möglicherweise akzeptabel, wenn der Cache veraltete Daten enthalten soll. Sie müssen entscheiden, welche Menge an veralteten Daten akzeptabel ist und dann ein Regelset entsprechend dieser Menge konfigurieren (und beachten).

Beispiel: Angenommen, in einer Anwendung werden Unternehmensdaten von einem großen Konglomerat analysiert, und Sie erstellen Jahresübersichten zu den verschiedenen Geschäftsbereichen im Unternehmen. Neue Daten haben keine maßgeblichen Auswirkungen auf die Abfragen, weil die neuen Daten nur die Übersichten des nächsten Jahres beeinflussen. In diesem Fall ist es sinnvoller, die Einträge im Cache beizubehalten.

Nehmen wir allerdings an, dass die Datenbanken dreimal täglich aktualisiert werden und Sie Abfragen zu den Aktivitäten des aktuellen Tages ausführen. In diesem Fall müssen Sie den Cache viel häufiger löschen oder vielleicht in Betracht ziehen, den Cache überhaupt nicht zu verwenden.

In einem weiteren Szenario erstellen Sie das Dataset von Anfang an in regelmäßigen Abständen neu (z.B. einmal pro Woche). In diesem Beispiel können Sie den gesamten Cache im Rahmen der Neuerstellung des Datasets löschen und so sicherstellen, dass nie veraltete Daten im Cache vorhanden sind.

Unabhängig von der vorliegenden Situation müssen Sie entscheiden, welche Menge an nicht aktuellen Informationen akzeptabel ist, die an die Benutzer zurückgegeben wird.

Cachesharing unter Benutzern

Wenn für einen bestimmten Verbindungspool die gemeinsame Anmeldung aktiviert ist, kann der Cache unter den Benutzern geteilt werden, und es muss kein Seeding für die einzelnen Benutzer erfolgen.

Wenn die gemeinsame Anmeldung nicht aktiviert ist und eine benutzerspezifische Datenbankanmeldung verwendet wird, generiert jeder Benutzer einen eigenen Cacheeintrag.

Abfrage-Caching aktivieren und deaktivieren

In Oracle Analytics Cloud ist der Abfragecache standardmäßig aktiviert. Sie können das Abfrage-Caching auf der Seite "Systemeinstellungen" aktivieren und deaktivieren.

  1. Klicken Sie auf Konsole.
  2. Klicken Sie auf Systemeinstellungen.
  3. Klicken Sie auf Performance und Kompatibilität.
  4. Setzen Sie Cache aktivieren auf "Ein" oder "Aus".
    • Ein: Datenabfrage-Caching ist aktiviert.
    • Aus: Caching ist deaktiviert.
  5. Klicken Sie auf Anwenden.
    Warten Sie einige Minuten, bis die Änderungen im System aktualisiert wurden.

Cache überwachen und verwalten

Um die Änderungen in den zugrunde liegenden Datenbanken zu verwalten und die Cacheeinträge zu überwachen, müssen Sie eine Cachemanagementstrategie entwickeln.

Sie benötigen einen Prozess zum Invalidieren von Cacheeinträgen, wenn die Daten in den zugrunde liegenden Tabellen, aus denen der Cacheeintrag besteht, geändert werden. Außerdem benötigen Sie einen Prozess, mit dem Sie unerwünschte Cacheeinträge überwachen, erkennen und entfernen können.

Der vorliegende Abschnitt umfasst die folgenden Themen:

Cachemanagementstrategie auswählen

Die Wahl einer Cachemanagementstrategie hängt von der Volatilität der Daten in den zugrunde liegenden Datenbanken und der Vorhersagbarkeit der Änderungen ab, die diese Volatilität verursachen.

Außerdem hängt sie von der Anzahl der Abfragen und den Abfragetypen in Ihrem Cache sowie von der Nutzung dieser Abfragen ab. Dieser Abschnitt enthält einen Überblick über die verschiedenen Ansätze des Cachemanagements.

Caching für das System deaktivieren

Sie können das Caching für das gesamte System deaktivieren, damit keine neuen Cacheeinträge erstellt werden und damit neue Abfragen den vorhandenen Cache nicht nutzen. Sie können das Caching später wieder aktivieren, ohne dass im Cache gespeicherte Einträge verloren gehen.

Ein vorübergehendes Deaktivieren des Cachings ist sinnvoll, wenn Sie vermuten, dass veraltete Cacheeinträge vorhanden sind, aber zunächst prüfen möchten, ob die Einträge tatsächlich veraltet sind, bevor Sie diese Einträge oder den gesamten Cache löschen. Wenn Sie feststellen, dass die im Cache gespeicherten Daten immer noch relevant sind, oder nachdem Sie problematische Einträge erfolgreich gelöscht haben, können Sie den Cache wieder aktivieren. Falls erforderlich, können Sie den gesamten Cache oder den mit einem bestimmten Geschäftsmodell verknüpften Cache löschen, bevor Sie den Cache wieder aktivieren.

Caching und Cachepersistenzzeit für bestimmte physische Tabellen

Sie können ein für Caching geeignetes Attribut für jede physische Tabelle festlegen. So können Sie angeben, ob Abfragen für diese Tabelle dem Cache zur Beantwortung zukünftiger Abfragen hinzugefügt werden.

Wenn Sie das Caching für eine Tabelle aktivieren, werden sämtliche Abfragen im Zusammenhang mit der Tabelle dem Cache hinzugefügt. Alle Tabellen sind standardmäßig für Caching geeignet. Allerdings sollten bestimmte Tabellen nur in den Cache aufgenommen werden, wenn Sie geeignete Einstellungen für die Cachepersistenz einrichten. Beispiel: Angenommen, Sie haben eine Tabelle mit Börsentickerdaten, die jede Minuten aktualisiert werden. Sie können angeben, dass die Einträge für diese Tabelle alle 59 Sekunden gelöscht werden sollen.

Außerdem können Sie über die Cachepersistenzeinstellungen angeben, wie lange die Einträge für diese Tabelle im Abfragecache gespeichert werden. Diese Aktion ist hilfreich für Datenquellen, die häufig aktualisiert werden.

  1. Doppelklicken Sie in Model Administration Tool im physischen Layer auf die physische Tabelle.

    Wenn Sie den semantischen Modellierer verwenden, lesen Sie Was sind die allgemeinen Eigenschaften einer physischen Tabelle?.

  2. Wählen Sie im Dialogfeld mit den Eigenschaften der physischen Tabelle auf der Registerkarte "Allgemein" eine der folgenden Optionen aus:

    • Um das Caching zu aktivieren, wählen Sie Für Caching geeignet aus.

    • Um das Caching für eine Tabelle zu verhindern, deaktivieren Sie die Option Für Caching geeignet.

  3. Um eine Cacheablaufzeit festzulegen, geben Sie eine Cachepersistenzzeit und eine Maßeinheit (Tage, Stunden, Minuten oder Sekunden) an. Wenn Sie verhindern möchten, dass Cacheeinträge automatisch ablaufen, aktivieren Sie die Option Cache läuft nie ab.

  4. Klicken Sie auf OK.

Auswirkungen von Änderungen eines semantischen Modells auf den Abfragecache

Wenn Sie semantische Modelle mit dem semantischen Modellierer oder mit Model Administration Tool ändern, können diese Änderungen Auswirkungen auf Einträge haben, die im Cache gespeichert sind. Beispiel: Wenn Sie die Definition eines physischen Objekts oder einer dynamischen Variablen semantischer Modelle ändern, sind Cacheeinträge mit Referenzen auf dieses Objekt oder diese Variable möglicherweise nicht mehr gültig. Aufgrund dieser Änderungen ist es unter Umständen erforderlich, den Cache zu löschen. Dabei sind zwei Szenarios möglich: Ändern eines vorhandenen semantischen Modells oder Erstellen (oder Hochladen) eines neuen semantischen Modells.

Änderungen am semantischen Modell

Wenn Sie ein semantisches Modell ändern oder eine andere RPD-Datei hochladen, werden bei Änderungen, die Cacheeinträge betreffen, automatisch alle Cacheeinträge mit Referenzen auf die geänderten Objekte gelöscht. Der Löschvorgang wird beim Hochladen der Änderungen ausgeführt. Beispiel: Wenn Sie eine physische Tabelle aus einem semantischen Modell löschen, werden alle Cacheeinträge mit Referenzen auf diese Tabelle beim Einchecken gelöscht. Bei Änderungen an einem semantischen Modell im logischen Layer werden alle Cacheeinträge für dieses semantische Modell gelöscht.

Änderungen an globalen Variablen semantischer Modelle

Die Werte von globalen Variablen semantischer Modelle werden durch Daten aktualisiert, die von Abfragen zurückgegeben werden. Wenn Sie eine globale Variable semantischer Modelle definieren, erstellen Sie einen Initialisierungsblock, oder verwenden Sie einen bereits vorhandenen Initialisierungsblock, der eine SQL-Abfrage enthält. Sie können auch einen Zeitplan erstellen, um die Abfrage auszuführen und den Wert der Variablen regelmäßig zu aktualisieren.

Wenn sich der Wert einer globalen Variablen semantischer Modelle ändert, sind alle Cacheeinträge, die diese Variable in einer Spalte verwenden, veraltet. Ein neuer Cacheeintrag wird generiert, wenn die Daten in diesem Eintrag wieder benötigt werden. Der alte Cacheeintrag wird nicht sofort entfernt. Er wird so lange beibehalten, bis er im Rahmen des normalen Caching-Mechanismus gelöscht wird.

Strategien für die Cachenutzung

Einer der Hauptvorteile beim Abfrage-Caching ist die Verbesserung der wahrnehmbaren Abfrageperformance.

Abfrage-Caching ist möglicherweise hilfreich, um außerhalb der Geschäftszeiten Cache-Seeding auszuführen, indem Sie Abfragen ausführen und deren Ergebnisse cachen. Für eine gute Seeding-Strategie müssen Sie wissen, wann Cachetreffer auftreten.

Wenn Sie Cache-Seeding für alle Benutzer ausführen möchten, können Sie beispielsweise folgende Abfrage ausführen:

SELECT User, SRs

Nachdem Sie das Cache-Seeding mit SELECT User, SRs ausgeführt haben, sind die folgenden Abfragen Cachetreffer:

SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER1)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER2)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER3)

Der vorliegende Abschnitt umfasst die folgenden Themen:

Cachetreffer

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 SELECT-Liste muss übereinstimmen

Alle Spalten in der SELECT-Liste einer neuen Abfrage müssen in der gecachten Abfrage vorhanden sein, damit sie sich für einen Cachetreffer qualifiziert, oder sie müssen aus den Spalten in der Abfrage berechnet werden können.

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 SELECT-Liste können Ausdrücke aus den Spalten der gecachten Abfragen enthalten

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 averageprice aus dollars und unitsales berechnet werden kann (averageprice = dollars/unitsales).

WHERE-Klausel muss semantisch identisch oder eine logische Teilmenge sein

Für eine Qualifikation der Abfrage als Cachetreffer müssen die Constraints der WHERE-Klausel entweder den gecachten Ergebnissen entsprechen oder eine Teilmenge der gecachten Ergebnisse sein.

Eine WHERE-Klausel, die eine logische Teilmenge einer gecachten Abfrage ist, qualifiziert sich für einen Cachetreffer, wenn die Teilmenge eines der folgenden Kriterien erfüllt:

  • Eine Teilmenge von IN-Listenwerten. Abfragen, in denen weniger Elemente einer gecachten Abfrage der IN-Liste angefordert werden, qualifizieren sich als Cachetreffer. Beispiel: Die folgende Abfrage:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('EAST', 'WEST')

    qualifiziert sich als Treffer für die folgende gecachte Abfrage:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('NORTH', 'SOUTH', 'EAST', 'WEST')
  • Sie enthält weniger (aber identische) OR-Constraints als das gecachte Ergebnis.

  • Sie enthält eine logische Teilmenge eines Literalvergleichs. Beispiel: Das folgende Prädikat:

    WHERE revenue < 1000

    qualifiziert sich als Cachetreffer für eine vergleichbare Abfrage mit dem Prädikat:

    WHERE revenue < 5000
  • Es ist keine WHERE-Klausel vorhanden. Wenn eine Abfrage ohne WHERE-Klausel gecacht wird, qualifizieren sich Abfragen, die alle anderen Regeln für Cachetreffer erfüllen, als Cachetreffer, unabhängig von ihrer WHERE-Klausel.

Darüber hinaus müssen Spalten, die in der WHERE-Klausel verwendet werden, in der Projektionsliste vorhanden sein. Beispiel: Die folgende Abfrage:

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 (AGO, TODATE und PERIODROLLING), Limit- und Offsetfunktionen (OFFSET und FETCH), Beziehungsfunktionen (ISANCESTOR, ISLEAF, ISROOT und ISSIBLING), externe Aggregationsfunktionen und im Allgemeinen Filtermetriken enthalten, müssen ebenfalls exakt mit den Projektionsspalten in der gecachten Abfrage übereinstimmen. In diesen Fällen muss auch der Filter exakt übereinstimmen. Bei Filtermetriken kann der Teilmengencache herangezogen werden, wenn die Filtermetrik als WHERE-Klausel umgeschrieben werden kann.

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: SELECT * FROM product stimmt nicht mit SELECT * FROM product, sales überein.

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.

DISTINCT-Attribut muss identisch sein

Wenn eine gecachte Abfrage doppelte Datensätze mit DISTINCT-Verarbeitung beseitigt (z.B. SELECT DISTINCT...), müssen Anforderungen für die gecachten Spalten ebenfalls die DISTINCT-Verarbeitung einschließen. Eine Anforderung für dieselbe Spalte ohne DISTINCT-Verarbeitung ist ein Cachefehlschlag.

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 qtysold gecacht wird, dann führt eine Anforderung für RANK(qtysold) zu einem Cachefehlschlag. Außerdem kann eine Abfrage, die qtysold auf Landesebene anfordert, einen Cachetreffer aus einer Abfrage erhalten, die qtysold auf der Landes-, Regionsebene anfordert.

ORDER BY-Klausel muss aus Spalten in der SELECT-Liste bestehen

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

Korrekte Cacheergebnisse bei Verwendung der Datenbanksicherheit auf Zeilenebene sicherstellen

Wenn Sie eine Datenbanksicherheitsstrategie auf Zeilenebene verwenden, wie Virtual Private Database (VPD), sind die zurückgegebenen Datenergebnisse von den Autorisierungszugangsdaten des Benutzers abhängig.

Aus diesem Grund muss in Oracle Analytics Cloud angegeben werden, ob für eine Datenquelle die Datenbanksicherheit auf Zeilenebene verwendet wird und welche Variablen sicherheitsrelevant sind.

Um sicherzustellen, dass Cachetreffer nur für Cacheeinträge auftreten, bei denen alle sicherheitssensitiven Variablen enthalten sind und übereinstimmen, müssen Sie das Datenbankobjekt und die Sessionvariablenobjekte im Model Administration Tool wie folgt ordnungsgemäß konfigurieren:

  • Datenbankobjekt: Wählen Sie im physischen Layer im Dialogfeld "Datenbank" auf der Registerkarte "Allgemein" die Option Virtual Private Database aus, um anzugeben, dass die Datenquelle Datenbanksicherheit auf Zeilenebene verwendet.

    Wenn Sie die Datenbanksicherheit auf Zeilenebene mit gemeinsamem Caching verwenden, müssen Sie diese Option auswählen, um das Sharing von Cacheeinträgen zu verhindern, deren sicherheitssensitiven Variablen nicht übereinstimmen.

  • Sessionvariablenobjekt: Wählen Sie für sicherheitsbezogene Variablen im Dialogfeld "Sessionvariable" die Option Sicherheitssensitiv aus, um diese bei Verwendung einer Datenbanksicherheitsstrategie auf Zeilenebene als sicherheitssensitiv zu identifizieren. Mit dieser Option stellen Sie sicher, dass Cacheeinträge mit den sicherheitssensitiven Variablen markiert werden und ein Abgleich der sicherheitssensitiven Variablen für alle eingehenden Abfragen aktiviert wird.

Folge von Abfragen zum Auffüllen des Cache ausführen

Um die möglichen Cachetreffer zu maximieren, haben Sie die Möglichkeit, eine Folge von Abfragen zum Auffüllen des Cache auszuführen.

Im Folgenden erhalten Sie Empfehlungen für die Abfragetypen, die Sie beim Erstellen einer Folge von Abfragen für das Seeding des Cache ausführen können.

  • Allgemeine vordefinierte Abfragen: Allgemein ausgeführte Abfragen, insbesondere solche mit aufwendiger Verarbeitung, sind hervorragende Abfragen für das Cache-Seeding. Ein gutes Beispiel für allgemeine Abfragen sind solche, deren Ergebnisse in Dashboards eingebettet sind.

  • SELECT-Listen ohne Ausdrücke: Durch das Beseitigen von Ausdrücken in Spalten der SELECT-Liste wird die Möglichkeit für Cachetreffer erhöht. Eine gecachte Spalte mit einem Ausdruck kann nur als Antwort auf eine neue Abfrage mit demselben Ausdruck verwendet werden. Eine gecachte Spalte ohne Ausdrücke kann als Antwort auf eine Anforderung für diese Spalte mit einem beliebigen Ausdruck verwendet werden. Beispiel: Eine gecachte Anforderung wie:

    SELECT QUANTITY, REVENUE...
    

    kann als Antwort auf eine neue Abfrage verwendet werden, wie:

    SELECT QUANTITY/REVENUE... 
    

    aber nicht umgekehrt.

  • Keine WHERE-Klausel: Wenn in einem gecachten Ergebnis keine WHERE-Klausel verwendet wird, kann es als Antwort auf Abfragen verwendet werden, die den Regeln für Cachetreffer für die SELECT-Liste mit einer beliebigen WHERE-Klausel entsprechen, die Spalten in der Projektionsliste enthält.

Im Allgemeinen sind die besten Abfragen für das Cache-Seeding solche Abfragen, die große Mengen an Datenbankverarbeitungsressourcen konsumieren und wahrscheinlich erneut ausgegeben werden. Achten Sie darauf, dass Sie keine einfachen Abfragen, die viele Zeilen zurückgeben, für das Cache-Seeding verwenden. Diese Abfragen (z.B. SELECT * FROM PRODUCTS, wobei PRODUCTS einer einzigen Datenbanktabelle direkt zugeordnet ist) erfordern sehr wenig Datenbankverarbeitung. Ihr Aufwand besteht aus Netzwerk- und Datenträger-Overhead. Solche Faktoren werden von Caching nicht vermindert.

Wenn Oracle Analytics Cloud Variablen semantischer Modelle aktualisiert, werden Geschäftsmodelle dahingehend untersucht, ob sie diese Variablen semantischer Modelle referenzieren. Ist das der Fall, löscht Oracle Analytics Cloud den gesamten Cache für diese Geschäftsmodelle. Siehe Auswirkungen von Änderungen eines semantischen Modells auf den Abfragecache.

Seeding des Abfragecache mit Agents ausführen

Sie können Agents für das Seeding des Oracle Analytics Cloud-Abfragecache konfigurieren.

Ein Cache-Seeding kann die Antwortzeiten für Benutzer verkürzen, wenn sie Analysen ausführen oder anzeigen, die in ihren Dashboards eingebettet sind. Dies können Sie erreichen, indem Sie Agents für die Ausführung von Anforderungen zur Aktualisierung dieser Daten planen.

  1. Öffnen Sie in Oracle Analytics Cloud die klassische Homepage, und wählen Sie Agent aus (Abschnitt Erstellen).
  2. Wählen Sie auf der Registerkarte "Allgemein" für die Option Ausführen als den Wert Empfänger aus. Bei personalisiertem Cache-Seeding wird die Datensichtbarkeit des jeweiligen Empfängers verwendet, um Agent-Übermittlungsinhalt für die einzelnen Empfänger anzupassen.
  3. Geben Sie auf der Registerkarte "Zeitplan" an, wann Sie das Seeding für den Cache ausführen möchten.
  4. Optional: Wählen Sie Bedingung aus, und erstellen Sie eine Bedingungsanforderung bzw. wählen Sie eine aus. Beispiel: Möglicherweise verwenden Sie ein Geschäftsmodell, das bestimmt, wann der ETL-Prozess abgeschlossen ist. Sie können einen Bericht basierend auf diesem Geschäftsmodell als bedingten Trigger für den Beginn des Cache-Seedings verwenden.
  5. Wählen Sie auf der Registerkarte "Übermittlungsinhalt" eine einzelne Anforderung oder eine komplette Dashboard-Seite aus, für die Sie das Cache-Seeding ausführen möchten. Durch das Auswählen einer Dashboard-Seite können Sie Zeit sparen.
  6. Wählen Sie auf der Registerkarte "Empfänger" einzelne Benutzer oder Gruppen als Empfänger aus.
  7. Löschen Sie auf der Registerkarte "Ziele" alle Benutzerziele, und wählen Sie Oracle Analytics Server-Cache aus.
  8. Speichern Sie den Agent durch Klicken auf die Schaltfläche Speichern in der oberen rechten Ecke.

Der einzige Unterschied zwischen Cache-Seeding-Agents und anderen Agents besteht darin, dass sie den vorherigen Cache automatisch löschen und auf dem Dashboard nicht als Alerts angezeigt werden.

Hinweis:

Cache-Seeding-Agents löschen nur Abfragen mit exakten Übereinstimmungen, d.h. unter Umständen sind noch veraltete Daten vorhanden. Stellen Sie sicher, dass die Caching-Strategie immer ein Löschen des Cache beinhaltet, weil Abfragen von Agents keine Ad-hoc-Abfragen oder Drills berücksichtigen.

Cache für bestimmte Tabellen mit Model Administration Tool automatisch leeren

Beim Löschen des Cache werden Einträge aus dem Abfragecache gelöscht und Ihre Inhalte auf dem aktuellen Stand gehalten. Sie können Cacheeinträge für bestimmte Tabellen automatisch löschen, indem Sie das Feld Cachepersistenzzeit für die jeweilige Tabelle in Model Administration Tool festlegen.

Hinweis:

Wenn Sie den semantischen Modellierer verwenden, lesen Sie Was sind die allgemeinen Eigenschaften einer physischen Tabelle?.

Diese Aktion ist hilfreich für Datenquellen, die häufig aktualisiert werden. Beispiel: Bei einer Tabelle, in der Börsentickerdaten gespeichert sind, die jede Minute aktualisiert werden, können Sie die Einstellung Cachepersistenzzeit verwenden, um die Einträge für diese Tabelle alle 59 Sekunden zu löschen. Siehe Caching und Cachepersistenzzeit für bestimmte physische Tabellen.