Optimisation des cubes BSO

L'optimisation des cubes BSO réduit la taille de la base de données. Elle suppose la réalisation des processus suivants :

  • Remplacement des blocs zéro par des blocs #Missing
  • Suppression des blocs #Missing pour réduire la taille de base de données
  • Utilisation de Never comme opérateur de consolidation pour les membres avec le type de données Liste dynamique, Date, Texte et Pourcentage

Suppression des zéros dans un cube BSO

Commencez par enlever les blocs zéro dans les dimensions dispersées du cube en les remplaçant par des blocs #Missing.

Pour remplacer des blocs zéro par des blocs #Missing, procédez comme suit :

  1. Créez une règle métier pour remplacer des blocs zéro par des blocs #Missing.

    Définissez un environnement de règle métier pour optimiser cette règle métier :

    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:

    • Même si UPDATECALC, CREATENONMISSINGBLK et CREATEBLOCKONEQ sont désactivés par défaut, Oracle recommande de les désactiver explicitement dans la règle métier.
    • Remplacez SparseDim par les noms des dimensions dispersées dans lesquelles les blocs zéro doivent être remplacés.
    • Utilisez la commande FIXPARALLEL pour contribuer à l'amélioration des performances, par exemple, FIXPARALLEL(4, @RELATIVE("Scenario",0)).
    • Indiquez ENDFIXPARALLEL.
  2. Utilisez l'une des conceptions de calcul optimisé suivantes pour remplacer les blocs zéro par des blocs #Missing. Sélectionnez la conception de calcul qui fonctionne le mieux selon la conception de la dimension, les modèles de données et les processus.

    Conception de calcul 1 (pour les calculs denses ou dispersés)

    Ce calcul génère la valeur d'origine et remplace les valeurs zéro par #Missing.

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

    Conception de calcul 2 (pour les membres denses en mode bloc uniquement)

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

    Note:

    Remplacez DenseMbr et SparseMbr, et DenseBlockHeader par des noms réels.

Suppression des blocs #Missing des cubes

Enlevez des blocs #Missing pour réduire la taille de base de données BSO. Utilisez l'une des deux méthodes suivantes pour effacer des blocs #Missing :

Méthode 1

Effectuez une restructuration dense explicite.

Dans Planning, ce processus peut être exécuté manuellement ou via un job. Les restructurations de base de données peuvent également être effectuées à l'aide d'EPM Automate et d'API REST.

Pour exécuter une restructuration de base de données à l'aide de Calculation Manager, procédez comme suit :

  1. Ouvrez Calculation Manager. Dans le navigateur, sélectionnez Règles sous Créer et gérer.
  2. Cliquez sur Actions, puis sélectionnez Propriétés de base de données.
  3. Dans Vue Enterprise, développez la base de données qui contient le cube à restructurer.
  4. Cliquez avec le bouton droit de la souris sur le cube à restructurer, puis sélectionnez Restructurer la base de données.

Sources d'informations :

  • Commande restructureCube dans le guide Utilisation d'EPM Automate pour Oracle Enterprise Performance Management Cloud
  • Section Restructuration de cube du guide API REST pour Oracle Enterprise Performance Management Cloud

Méthode 2

Effacez toutes les données. Chargez à nouveau toutes les données à partir des fichiers précédemment chargés vers l'environnement.

Utilisation de Never comme opérateur de consolidation pour les membres avec les types de données Liste dynamique, Date, Texte et Pourcentage

Les membres de dimension dont le type de données est Liste dynamique, Date, Texte et Pourcentage doivent utiliser Never comme opérateur de consolidation. L'utilisation de l'opérateur de consolidation Addition augmente la taille du cube sans ajouter de valeur. L'utilisation de l'opérateur de consolidation Ignore arrêtera uniquement l'action Addition dans la dimension du membre. La consolidation des valeurs d'autres dimensions ne sera pas arrêtée, ce qui peut potentiellement créer des blocs inutiles.