Valeurs à calculer dynamiquement
Le calcul dynamique de certaines valeurs de données réduit le temps de calcul par lots et l'utilisation du disque, mais peut augmenter le temps d'extraction. Suivez les instructions décrites dans les rubriques suivantes pour déterminer les membres Essbase à calculer dynamiquement.
Vous pouvez baliser n'importe quel membre en tant que calcul dynamique, à l'exception des membres de niveau 0 qui n'ont pas de formule, de membres de type libellé uniquement et de membres partagés.
Les membres que vous choisissez de calculer dynamiquement dépendent de la structure de la base de données et de l'équilibre entre (1) la nécessité de réduire le temps de calcul et l'utilisation du disque et (2) la nécessité d'une extraction rapide des données pour les utilisateurs.
Dans la base de données Sample Basic, la dimension Year est Calcul dynamique.
Figure 21-1 Exemple de plan de base présentant les membres de calcul dynamique

Dans Smart View, les utilisateurs peuvent afficher des repères visuels pour distinguer les valeurs calculées dynamiquement.
Lorsque vous développez des requêtes qui incluent des valeurs calculées dynamiquement, envisagez d'utiliser l'option Naviguer sans données de Smart View afin qu'Essbase ne calcule pas et ne stocke pas de valeurs de manière dynamique pendant la création des requêtes de test.
Membres denses et calcul dynamique
Les membres Calcul dynamique Essbase d'une dimension dense peuvent être dotés de membres de niveau supérieur et de membres de niveau 0 avec des formules simples.
Pensez à apporter les modifications suivantes aux membres des dimensions denses :
-
Marquez les membres de niveau supérieur des dimensions denses comme calcul dynamique.
-
Essayez de baliser les membres de niveau 0 des dimensions denses avec des formules simples comme Calcul dynamique et évaluez l'augmentation du temps d'extraction.
Les formules simples ne nécessitent pas Essbase pour effectuer un calcul coûteux. Les formules contenant des fonctions financières ou des opérateurs interdimensionnels (->) sont des formules complexes.
Membres dispersés et calcul dynamique
Les membres Calcul dynamique Essbase d'une dimension dispersée peuvent être dotés de membres de niveau supérieur sans enfants et de membres avec des formules.
Envisagez d'apporter les modifications suivantes aux membres des dimensions dispersées :
-
Marquez certains membres de niveau supérieur des dimensions dispersées qui ont six enfants ou moins comme calcul dynamique.
-
Marquez les membres de dimension dispersée avec des formules complexes en tant que calcul dynamique.
Une formule complexe requiert Essbase pour effectuer un calcul coûteux. Par exemple, toute formule contenant une fonction financière est une formule complexe. Reportez-vous à Formules complexes de membres Essbase.
-
Marquez les membres de niveau supérieur d'une dimension que vous restructurez fréquemment en tant que calcul dynamique.
-
Ne marquez pas les membres de dimension dispersée de niveau supérieur qui ont 20 descendants ou plus comme calcul dynamique.
Relations parent-enfant et calcul dynamique
Parents avec un enfant
Si un membre parent dispose d'un membre enfant et que vous marquez cet enfant comme calcul dynamique, vous devez également marquer le parent comme calcul dynamique.
Toutefois, si un membre parent a un membre enfant et que le parent est un membre Calcul dynamique, vous n'avez pas besoin de baliser l'enfant en tant que Calcul dynamique.
Dépendances de calcul dynamique dans le calcul par lots
Si le calcul d'un membre dépend du calcul des membres enfant de calcul dynamique, Essbase doit d'abord calculer les membres enfant au cours du calcul de la base de données batch afin de calculer le parent. Par conséquent, le temps de calcul standard n'est pas réduit. Cette exigence s'applique aux membres des dimensions dispersées et denses.
Par exemple, dans la figure ci-dessous, Qtr1 est un membre de calcul dynamique. Ses enfants, Jan, Feb et Mar, ne sont pas dynamiques. Son parent, Year, n'est pas dynamique. Lorsque Essbase calcule Year au cours d'un calcul par lots, il doit consolider les valeurs de ses enfants, y compris Qtr1. Par conséquent, le calcul de Qtr1 doit prendre plus de temps, bien que Qtr1 soit Calcul dynamique.
Figure 21-2 Dimension Année avec Qtr1 comme membre de calcul dynamique

Scripts de calcul et calcul dynamique
Vous ne pouvez pas effectuer de calcul de script de calcul d'un membre Calcul dynamique. Si vous utilisez un script de calcul pour calculer explicitement un membre, ne le marquez pas comme calcul dynamique.
Lorsque Essbase calcule une instruction CALC ALL ou CALC DIM dans un script de calcul, il ignore le calcul des membres de calcul dynamique.
De même, si une fonction d'ensemble de membres (par exemple, @CHILDREN ou @SIBLINGS) est utilisée pour spécifier la liste des membres à calculer, Essbase ignore le calcul des membres de calcul dynamique dans la liste obtenue.
Si vous spécifiez explicitement un membre Calcul dynamique dans un script de calcul, ce dernier échoue.
Par exemple, le script de calcul suivant n'est valide que si Qtr1 n'est pas un membre Calcul dynamique :
FIX (East, Colas)
Qtr1;
ENDFIXFormules et membres calculés dynamiquement
Vous pouvez utiliser des membres de calcul dynamique dans les formules d'outline Essbase, mais pas en tant que cibles de formule dans les scripts de calcul.
Vous pouvez inclure un membre calculé dynamiquement dans une formule lorsque vous appliquez la formule à l'outline. Par exemple, si Qtr1 est un membre Calcul dynamique, vous pouvez placer la formule suivante sur Qtr1 dans l'outline de la base de données :
Qtr1 = Jan + Feb;Vous ne pouvez pas faire d'un membre calculé dynamiquement la cible d'un calcul de formule dans un script de calcul. Essbase ne réserve pas de mémoire pour une valeur calculée dynamiquement et ne peut pas lui affecter de valeur. Par exemple, si Qtr1 est un membre Calcul dynamique, Essbase affiche une erreur de syntaxe si vous incluez la formule suivante dans un script de calcul :
Qtr1 = Jan + Feb;Si Qtr1 est un membre de calcul dynamique et que Year ne l'est pas, vous pouvez utiliser la formule suivante dans un script de calcul :
Year = Qtr1 + Qtr2;Cette formule est valide car Essbase n'affecte pas de valeur au membre calculé dynamiquement.
Remarques :
Lorsque vous référencez un membre calculé dynamiquement, que ce soit dans une formule d'outline ou dans un script de calcul, Essbase interrompt le calcul standard pour effectuer le calcul dynamique, ce qui a une incidence sur les performances.
Scripts et membres calculés dynamiquement
Pour éviter tout calcul excessif lorsqu'il existe des formules de membre Calcul dynamique dépendantes de l'exécution, vous pouvez ajouter SET FRMLRTDYNAMIC OFF au script de calcul Essbase.
La phase de prétraitement d'un script de calcul ne peut pas déterminer si une outline contient des membres denses de calcul dynamique. Si un script contient des formules dépendantes de l'exécution, Essbase doit calculer tous les membres denses de calcul dynamique lors de l'exécution du script. L'utilisation de la commande de calcul SET FRMLRTDYNAMIC OFF améliore les performances en arrêtant le calcul de ces membres de calcul dynamique.