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:
Beispiel: Deaktivieren Sie in Oracle BI Applications Initialisierungsblöcke, die Oracle BI Applications-Module referenzieren, die Sie nicht mehr verwenden.
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
dual
oder W_DUAL_G
auswählen, und fügen Sie den hartcodierten Wert in den Standardinitialisierungsblock der entsprechenden Variable ein.select
-Anweisung zusammen.HR xxx Attribute yyy
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.