Cube für Hybridmodus optimieren

So setzen Sie den Hybridmodus am effektivsten ein:

  • Vermeiden Sie die Verwendung der zweistufigen Berechnung im Hybridmodus. Verwenden Sie stattdessen die Lösungsreihenfolge.

  • Konvertieren Sie nach Möglichkeit gespeicherte Elemente, die nicht zur Ebene 0 gehören, in dynamische Berechnungselemente.

  • Wenn die Konvertierung in dynamische Berechnungselemente die Lösungsreihenfolge für abhängige Formeln beeinflusst, müssen Sie möglicherweise die Reihenfolge der Dimensionen in der Modellstruktur anpassen, damit die Lösungsreihenfolge mit der vorherigen Batchberechnungsreihenfolge und den Einstellungen der zweistufigen Berechnung übereinstimmt.

    Die Standardlösungsreihenfolge für Hybridmodus-Cubes ähnelt der Berechnungsreihenfolge von Block Storage Cubes, mit einigen Verbesserungen. Wenn Sie nicht die Standardlösungsreihenfolge verwenden möchten, können Sie eine benutzerdefinierte Lösungsreihenfolge für Dimensionen und Elemente festlegen.

  • Eine dynamisch berechnete Formel, die in der falschen Lösungsreihenfolge verarbeitet wird, kann dazu führen, dass zu viele Formeln von einer Abfrage ausgeführt werden, sodass die Performance leidet. Eine dynamisch berechnete Sparse-Formel sollte nach Möglichkeit einen höheren Lösungsrang als hierarchisch aggregierte Sparse-Dimensionen haben.

    In einigen Anwendungen ist das nicht möglich, da eine andere Lösungsreihenfolge erforderlich ist, um die richtigen Formelergebnisse abzurufen. Beispiel: Bei einer Anwendung mit Einheiten und Preisen muss ein Verkaufswert vor den Sparse-Aggregationen ausgeführt werden, um die richtigen Verkaufswerte auf oberen Ebenen abzurufen.

  • Unter Umständen müssen Sie die Dense- und Sparse-Konfigurationen der Dimensionen anpassen (gilt nur bei Verwendung der Block Storage Engine in Fällen, in denen die Hybrid-Engine nicht verwendet werden kann).

  • Minimieren Sie die Größe der Blöcke, falls möglich.

Essbase-Administratoren können die Abfrageperformance im Hybridmodus mit den folgenden Tools überwachen und optimieren:

  • Mit der Konfigurationseinstellung MAXFORMULACACHESIZE können Sie die Arbeitsspeichermenge begrenzen, die von einer einzelnen Abfrage belegt werden kann.

  • Wenn der Cube komplexe Elementformeln mit dimensionsübergreifenden Operatoren und mehreren IF/ELSE-Anweisungen umfasst, können Performanceprobleme mit der Formelausführung in Zusammenhang stehen. Wenn Sie denken, dass dies der Fall ist, können Sie die Bottom-up-Abfrageverarbeitung für die Berechnung der Formel aktivieren. Dadurch werden die Abfragezeiten optimiert, indem die erforderlichen Schnittmengen für die Berechnung identifiziert werden. So wird die Abfragezeit proportional zur Größe der Eingabedaten.

    Um diese Abfrageoptimierungen für Release 21C vorzunehmen, verwenden Sie die Konfigurationseinstellung QUERYBOTTOMUP und die Berechnungsfunktion @QUERYBOTTOMUP. Für Release 19C verwenden Sie die Konfigurationseinstellung IGNORECONSTANTS mit BOTTOMUP-Syntax und die Berechnungsfunktion @NONEMPTYTUPLE.

  • Verwenden Sie das Abfragetracing, um die Abfrageperformance zu überwachen und zu debuggen. Je nach Anwendungsfall stehen mehrere Konfigurationseinstellungen auf Anwendungsebene zur Verfügung. Verwenden Sie QUERYTRACE für das kurzfristige Debugging einer einzelnen Abfrage, die Ihnen problematisch erscheint. Verwenden Sie TRACE_REPORT, um Statistiken zu nebenläufig ausgeführten Abfragen zu erfassen (ideal für das Debugging in einer Entwicklungsumgebung). Verwenden Sie LONGQUERYTIMETHRESHOLD in Produktionsumgebungen, um Statistiken zu Abfragen, deren Ausführungsdauer eine festgelegte Zeit überscheitet, in die Anwendungslogdatei zu schreiben.