Wartung von Initialisierungsblöcken

Wenn Sie Data Gateway oder Remote Data Connector mit Oracle Analytics Cloud verwenden, dauert jede Abfrageausführung ein bisschen länger.

Sie bemerken diese zusätzliche Dauer bei der Ausführung eines Berichts nicht, da sie weniger als 0,3 Sekunden beträgt. Es kann allerdings zu Performanceproblemen kommen, wenn Sie bei Benutzeranmeldungen viele Initialisierungsblöcke ausführen (die genaue Zahl hängt von Ihren Performanceanforderungen ab), da Initialisierungsblockabfragen seriell ausgeführt werden. Dieses Problem wird durch die Option zur Verzögerung für Initialisierungsblöcke nicht behoben, da Initialisierungsblöcke ausgeführt werden, wenn Sie die erste Dashboard-Seite öffnen.

Das ist problematisch, wenn Sie Oracle BI Applications verwenden, da hierbei mehr als 200 Initialisierungsblöcke ausgeführt werden. Bei Oracle Analytics Cloud vermeiden Sie diese Performanceprobleme am besten, indem Sie die Anzahl der Initialisierungsblöcke verringern.

Empfehlungen zum Reduzieren der Anzahl an Sessioninitialisierungsblöcken:

  • Deaktivieren Sie alle Initialisierungsblöcke, die Sie nicht wirklich benötigen.

    Beispiel: Deaktivieren Sie in Oracle BI Applications Initialisierungsblöcke, die Oracle BI Applications-Module referenzieren, die Sie nicht mehr verwenden.

  • Wenn keine Prioritätsregel vorliegt, führen Sie alle row_wise-Initialisierungsblöcke, die denselben Verbindungspool verwenden und denselben Datentyp zurückgeben, zusammen, indem Sie UNION ALL zwischen ihren Abfragen verwenden.

    Beispiel:

    Init block 1: query1
    
    Init block 2: query2
    
    Merged init block: query1 union all query2
  • Deaktivieren Sie alle Initialisierungsblöcke, die einen hartcodierten Wert aus dual oder W_DUAL_G auswählen, und fügen Sie den hartcodierten Wert in den Standardinitialisierungsblock der entsprechenden Variable ein.
  • Führen Sie die restlichen Initialisierungsblöcke, die Daten aus "dual" auswählen, in einer einzelnen select-Anweisung zusammen.
  • Deaktivieren Sie für Kunden von Oracle BI Applications alle Initialisierungsblöcke, mit denen benutzerdefinierte Attributnamen und -werte von Oracle Human Capital Management abgerufen werden, wenn das entsprechende Attribut nicht verwendet wird (wenn der Standardwert "HIDE" der aktuelle Wert für diese Variablen ist) oder wenn Sie Oracle Human Capital Management nicht als Oracle BI Applications-Datenquelle verwenden (es gibt 100 derartige Initialisierungsblöcke in Oracle BI Applications):
    HR xxx Attribute yyy
  • Führen Sie alle restlichen Initialisierungsblöcke zusammen, die nicht row_wise sind und denselben Verbindungspool verwenden. Beispiel:

    Initialisierungsblock 1 basiert auf Abfrage 1: select colA from tableA where….

    Initialisierungsblock 2 basiert auf Abfrage 2: select colB from tableB where….

    Sie können diese mit einer Abfrage wie der Folgenden in einem einzelnen Initialisierungsblock zusammenführen:

    Select MAX(colA), MAX(colB) from (
    
    select cola as cola, null as colB from tableA where….
    
    Union all
    
    Select null, colB from tableB where…) tmp

Sie können dabei so viele UNION-Vorgänge wie nötig ausführen, um alle Variablen von demselben Verbindungspool in einer Abfrage abzurufen.

Das ist nicht einfach zu implementieren oder zu warten. Außerdem könnten Sie Fehler machen, wenn Sie die Abfragen erstellen und alle Variablen einem einzelnen Initialisierungsblock zuweisen. Wenn Sie Ihre Initialisierungsblockabfragen und Variablen sorgfältig implementieren und warten, können Sie den Zeitaufwand zum Anmelden und Anzeigen der ersten Dashboard-Seite erheblich reduzieren.