BSO-Cubes optimieren

Durch die Optimierung von BSO-Cubes wird die Größe der Datenbank reduziert. Folgende Prozesse sind beteiligt:

  • Nullblöcke durch #missing-Blöcke ersetzen
  • #missing-Blöcke entfernen, um die Größe der Datenbank zu reduzieren
  • Never als Konsolidierungsoperator für Elemente mit den Datentypen Smart List, Datum, Text und Prozentsatz verwenden

Nullen in einem BSO-Cube entfernen

Entfernen Sie zunächst Nullblöcke in den Sparse-Dimensionen im Cube, indem Sie sie durch #missing-Blöcke ersetzen.

So ersetzen Sie Nullblöcke durch #missing-Blöcke:

  1. Erstellen Sie eine Geschäftsregel zum Ersetzen von Nullblöcken durch #missing-Blöcke.

    Legen Sie die Geschäftsregelumgebung so fest, dass die folgende Geschäftsregel optimiert wird:

    SET UPDATECALC OFF;
    SET CREATENONMISSINGBLK OFF;
    SET CREATEBLOCKONEQ OFF;
    FIXPARALLEL(NumberThreads, @RELATIVE("SparseDim",0))
    FIX on all level 0 sparse dimension @RELATIVE(SparseDim,0)
    

    Note:

    • Obwohl UPDATECALC, CREATENONMISSINGBLK und CREATEBLOCKONEQ standardmäßig deaktiviert sind, empfiehlt Oracle, sie in der Geschäftsregel explizit zu deaktivieren.
    • Achten Sie darauf, "SparseDim" durch die Namen der Sparse-Dimensionen zu ersetzen, in denen Nullblöcke ersetzt werden sollen.
    • Verwenden Sie FIXPARALLEL, um die Performance zu verbessern. Beispiel: FIXPARALLEL(4, @RELATIVE("Scenario",0)).
    • Achten Sie darauf, ENDFIXPARALLEL anzugeben.
  2. Verwenden Sie eines der folgenden optimierten Berechnungsdesigns, um Nullblöcke in #missing-Blöcke zu ändern. Wählen Sie abhängig von Dimensionsdesign, Datenmustern und Prozessen das Berechnungsdesign mit der besseren Performance aus.

    Berechnungsdesign 1 (zur Berechnung von Dense- oder Sparse-Elementen)

    Diese Berechnung ergibt den ursprünglichen Wert und ändert Nullwerte in #missing.

    "DenseMbr" = "DenseMbr" * "DenseMbr" / "DenseMbr";
    "SparseMbr" = "SparseMbr" * "SparseMbr" / "SparseMbr";

    Berechnungsdesign 2 (nur zur Berechnung von Dense-Elementen im Blockmodus)

    "DenseBlockHeader" (
        @CALCMODE(BLOCK);
           IF ("DenseMbr" == 0) 
               "DenseMbr" = #Missing;
           ENDIF

    Note:

    Ersetzen Sie DenseMbr, SparseMbr und DenseBlockHeader durch die tatsächlichen Namen.

#missing-Blöcke aus Cubes entfernen

Entfernen Sie #missing-Blöcke, um die Größe der BSO-Datenbank zu reduzieren. Verwenden Sie eine der beiden folgenden Methoden, um #missing-Blöcke zu löschen:

Methode 1

Führen Sie eine explizite Neustrukturierung von Dense-Elementen durch.

In Planning kann dieser Prozess manuell oder über einen Job ausgeführt werden. Datenbankneustrukturierungen können auch über EPM Automate und REST-APIs ausgeführt werden.

So führen Sie eine Datenbankneustrukturierung mit Calculation Manager aus:

  1. Öffnen Sie Calculation Manager. Wählen Sie im Navigator unter Erstellen und verwalten die Option Regeln aus.
  2. Klicken Sie auf Aktionen, und wählen Sie Datenbankeigenschaften aus.
  3. Blenden Sie unter Administrative Gesamtübersicht die Datenbank mit dem Cube ein, der neu strukturiert werden soll.
  4. Klicken Sie mit der rechten Maustaste auf den Cube, der neu strukturiert werden soll, und wählen Sie Datenbank neu strukturieren aus.

Informationsquellen:

  • Befehl restructureCube in der Dokumentation Mit EPM Automate für Oracle Enterprise Performance Management Cloud arbeiten
  • Cube neu strukturieren in der Dokumentation REST-API für Oracle Enterprise Performance Management Cloud

Methode 2

Löschen Sie alle Daten. Laden Sie alle Daten aus Dateien neu, die zuvor in die Umgebung hochgeladen wurden.

"Never" als Konsolidierungsoperator für Elemente mit den Datentypen Smart List, Datum, Text und Prozentsatz verwenden

Für Dimensionselemente mit den Datentypen Smart List, Datum, Text und Prozentsatz sollte Never als Konsolidierungsoperator verwendet werden. Durch die Verwendung des Konsolidierungsoperators "Addition" wird die Cube-Größe um den Wert null erhöht. Durch die Verwendung des Konsolidierungsoperators "Ignore" wird nur das Hinzufügen innerhalb der Dimension des Elements gestoppt. Die Aggregation von Werten aus anderen Dimensionen wird jedoch fortgesetzt, wodurch potenziell unnötige Blöcke erstellt werden können.