Surveiller et suivre les calculs
Surveillez et tracez les calculs Essbase pour obtenir des informations sur le traitement des formules de membre. CALCTRACE et SET TRACE vous aident à tracer les calculs exécutés à partir de Smart View ou dans des calculs stockés. Pour consigner les statistiques de performances à des fins de test, vous pouvez utiliser SET MSG et SET NOTICE.
Pour activer la fonction de TRACE de calcul, utilisez la propriété de configuration CALCTRACE, puis Smart View pour lancer la fonction de TRACE contextuelle, ou utilisez la commande SET TRACE dans un script de calcul pour sélectionner les croisements de données à suivre. Pour plus d'informations, voir Calculs de trace.
Pour afficher des informations dans le journal de l'application sur la façon dont Essbase calcule le cube, vous pouvez utiliser SET MSG et SET NOTICE dans un script de calcul. Reportez-vous à Commandes SET pour les tests de calcul et les statistiques.
Traçage de calculs
Utilisez le traçage de calcul Essbase pour obtenir des informations clés sur le traitement des formules de membre, afin de vous aider à déboguer et à affiner vos scripts de calcul en mode "block storage". Activez CALCTRACE pour obtenir un traçage de calcul Smart View contextuel, ou utilisez la commande SET TRACE pour sélectionner les croisements de données à tracer.
Une fois le script de calcul exécuté par rapport à un cube, le traçage de calcul permet d'accéder aux informations journalisées concernant un calcul.
Le traçage d'un calcul ne modifie en rien son comportement. Si un calcul est lancé dans Smart View et qu'un administrateur active le traçage de calcul sur le serveur connecté, Smart View affiche une boîte de dialogue instantanée contenant des détails après l'exécution du calcul. Les informations de traçage de calcul peuvent être collées dans un éditeur de texte à partir de la boîte de dialogue instantanée. Vous pouvez également trouver ces informations dans calc_trace.txt, qui se trouve dans le répertoire de fichiers de la base de données dans Essbase.
Les informations de traçage de calcul peuvent vous aider à déboguer l'exécution du script de calcul, dans le cas où les résultats du calcul ne sont pas ceux que vous attendiez.
Le traçage de calcul n'est pas pris en charge sur les applications pour lesquelles la gestion de scénarios est activée.
Pour activer la traçabilité de calcul, l'administrateur doit d'abord désactiver le paramètre d'application CALCTRACE de la configuration. Une fois que le traçage de calcul est activé pour l'application, il existe deux manières d'en tirer parti :
- Dans Smart View, vous pouvez utiliser un traçage contextuel pour une seule valeur de cellule.
- Dans Smart View, connectez une feuille de requête à l'application pour laquelle vous avez activé le traçage de calcul.
- Mettez en surbrillance une cellule de données dont vous voulez tracer la valeur calculée.
- Dans le panneau Données de l'onglet Essbase, cliquez sur le bouton Calculer et sélectionnez un script de calcul à exécuter. Le point de vue s'affiche dans la cellule de données mise en surbrillance dans les invites d'exécution du membre de trace.
- Cliquez sur Lancer pour exécuter le script de calcul.
La portée complète du calcul comme contenue dans le script sera calculée, mais seul le contexte de la cellule de données mise en surbrillance sera tracée lors du calcul.
- A la fin du script de calcul, examinez la boîte de dialogue Résultat du calcul, qui affiche les résultats avant et après le calcul pour la cellule de données mise en surbrillance.
Si la cellule de données mise en surbrillance n'a pas été modifiée lors du calcul, un message s'affiche indiquant que la cellule n'a pas été modifiée.
- Dans les scripts de calcul, vous pouvez utiliser la commande des calculs SET TRACE pour sélectionner les croisements des données à tracer. La commande SET TRACE permet de tracer plusieurs cellules de données. Par ailleurs, vous pouvez tracer des sections de scripts de calcul en combinant
SET TRACE mbrList(pour activer la TRACE de calcul sur une liste de membres) etSET TRACE OFF(pour désactiver la TRACE de calcul jusqu'à ce qu'une nouvelle ligne SET TRACE soit trouvée dans le script). Pour utiliser la commande SET TRACE, vous devez exécuter le script de calcul en dehors de Smart View, à l'aide du concepteur de cubes, de la commande calc de la CLI, d'un travail Exécuter le calcul dans l'interface Web Essbase ou de l'instruction MaxL (exécuter le calcul).
Le script de calcul suivant est exécuté sur Sample Basic. Le script inclut une commande SET TRACE qui demande de journaliser des informations détaillées pour le croisement de données (cellule) qui représente les ventes budgétées de janvier pour le marché de Californie, pour la SKU de produit dont le numéro est de 100-10.
SET TRACEID "id042"
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
"Sales" (
"100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
);
ENDFIX;Remarques :
La commande SET TRACEID est également recommandée afin d'éviter que votre fichier de trace de calcul ne soit écrasé.Sample Basic comporte deux dimensions dispersées : Product et Market. La formule de membre est établie sur Sales, membre de Measures, qui est une dimension dense. La liste des membres de l'instruction FIX ne contient qu'un membre dispersé, California, qui appartient à la dimension Market.
Le nombre de blocs existants dans la portée de l'instruction FIX détermine le nombre de calculs sur la cellule tracée. Dans cet exemple, le calcul parcourt toutes les combinaisons de membres dispersés existantes de California. Chacune de ces combinaisons représente un bloc.
Une fois le calcul terminé, les informations de traçage suivantes ont été journalisées et affichées dans calc_trace_id042.txt :
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 1)
Previous value: 840.00
Dependent values:
[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values:
[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values:
[200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)
[...calc iterations 4-7 are omitted from example...]
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values:
[400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)Le journal de traçage de calcul fournit les informations clés suivantes sur le fonctionnement du calcul pour la cellule tracée :
-
La cellule tracée a été calculée plusieurs fois et la valeur de cellule a été remplacée à chaque fois par la nouvelle valeur (le décompte de mise à jour de la cellule signalée s'arrête à 8).
-
La valeur de la cellule, avant le calcul, était de 840.00.
-
Pour chaque occurrence de calcul, des valeurs dépendantes et de nouvelles valeurs sont présentes. Les valeurs dépendantes proviennent de la formule de membre dans l'instruction FIX.
-
La valeur finale de la cellule tracée une fois que le calcul est terminé est 9, mais elle représente la valeur du produit
"400-20"->Californiadivisée par 10. -
Les lignes 91 à 93 du script de calcul, qui contiennent une formule de membre sur Sales, sont responsables des valeurs mises à jour.
Pour chacun des blocs parcourus, Sales est calculé à l'aide de la formule suivante :
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10La formule contient un membre dispersé sur la gauche, qui pourrait être à l'origine de différences entre le bloc de calcul réel et le bloc FIX initial. Par exemple, lorsque le calcul parcourt "California"->"100-20", les calculs sont en réalité effectués dans "California"->"100-10".
Les entrées des journaux de trace intitulées Block from FIX scope et Actual block used in calculation sont imprimées uniquement s'il existe une différence entre le bloc de l'instruction FIX et le bloc représenté dans la formule de membre. Ces entrées de journal peuvent fournir des indications sur la raison pour laquelle certains calculs sont en double, et ainsi vous aider à déboguer vos scripts de calcul.
Commandes SET pour les tests de calcul et les statistiques
Vous pouvez utiliser les commandes SET dans les scripts de calcul en mode "block storage" Essbase pour collecter des informations de calcul, des paramètres et des statistiques qui peuvent être utiles pour tester et surveiller les performances des calculs. Les commandes sont SET MSG SUMMARY, SET MSG DETAIL et SET NOTICE.
Définir le résumé du message et définir les détails du message
Vous pouvez utiliser les commandes de calcul SET MSG SUMMARY et SET MSG DETAIL dans un script de calcul pour effectuer les opérations suivantes :
-
Afficher les paramètres de calcul, par exemple si les messages d'avis de fin sont activés
-
fournir des statistiques sur le nombre de blocs de données créés, lus et écrits ;
-
Fournir des statistiques sur le nombre de cellules de données calculées
SET MSG DETAIL fournit également un message d'information chaque fois qu'Essbase calcule un bloc de données. SET MSG DETAIL est utile pour vérifier l'ordre de calcul des blocs de données et pour tester les recalculs intelligents.
Attention :
Etant donné que SET MSG DETAIL entraîne une surcharge de traitement élevée, utilisez-la uniquement lors des calculs de test.
SET MSG SUMMARY provoque une surcharge de traitement d'environ 1% à 5%, en fonction de la taille du cube, et est donc approprié pour tous les calculs.
DÉFINIR UN AVIS
Vous pouvez utiliser la commande de calcul SET NOTICE dans un script de calcul pour afficher les avis de fin de calcul qui indiquent le pourcentage du cube calculé. Vous pouvez utiliser la commande SET MSG SUMMARY avec la commande SET NOTICE pour afficher la progression du calcul entre les avis de fin. Les avis de finalisation ne réduisent pas considérablement les performances de calcul, sauf lorsqu'ils sont utilisés avec un cube très petit.