Simuler des calculs pour estimer le temps de calcul

Vous pouvez simuler un calcul sur un modèle de votre cube en mode "block storage" Essbase pour estimer la durée d'un calcul réel. Pour ce faire, vous exécutez un script de calcul avec SET MSG ONLY et SET NOTICE HIGH, prenez note des heures de fin et procédez à l'extrapolation.

Vous pouvez simuler un calcul en utilisant SET MSG UNIQUEMENT dans un script de calcul. Un calcul simulé produit des résultats qui vous aident à analyser les performances d'un calcul réel basé sur les mêmes données et la même outline.

En exécutant un calcul simulé avec une commande telle que SET NOTICE HIGH, vous pouvez marquer la durée relative nécessaire à chaque dimension dispersée. Ensuite, en effectuant un calcul réel sur une ou plusieurs dimensions, vous pouvez estimer combien de temps prendra le calcul complet, car le temps nécessaire à l'exécution d'un calcul simulé est proportionnel au temps nécessaire à l'exécution du calcul réel.

Par exemple, si le calcul commence à 9:50:00 AM et que le premier avis est horodaté à 09:50:10 AM et que le second est horodaté à 09:50:20 AM, vous savez que chaque partie du calcul a pris 10 secondes. Si vous exécutez ensuite un calcul réel sur la première partie et notez qu'il a fallu 30 secondes pour l'exécuter, vous savez que l'autre partie prendra également 30 secondes. S'il y avait deux messages au total, vous sauriez que le calcul réel prendra environ 60 secondes (20 / 10 * 30 = 60 secondes).

Utilisez les rubriques suivantes pour apprendre à effectuer un calcul simulé et à utiliser un calcul simulé pour estimer le temps de calcul.

Simuler un calcul

Simulez le calcul sur un modèle de votre cube en mode "block storage" Essbase en exécutant un script de calcul avec les commandes SET MSG ONLY et SET NOTICE HIGH, et en prenant note des horodatages dans le journal de l'application.

Avant de pouvoir estimer le temps de calcul, vous devez effectuer un calcul simulé sur un modèle de données basé sur votre cube réel. Vous pouvez ensuite consulter le journal de l'application pour connaître la durée des calculs.

Pour savoir où trouver le journal de l'application, reportez-vous à Emplacements d'environnement dans la plate-forme Essbase.

Pour effectuer un calcul simulé :

  1. Créez un modèle de données qui utilise toutes les dimensions et tous les niveaux de détail sur lesquels vous souhaitez obtenir des informations.
  2. Chargez toutes les données. Cette procédure calcule uniquement les données chargées dans le cube.
  3. Créez un script avec les entrées suivantes :
    SET MSG ONLY;
    SET NOTICE HIGH;
    CALC ALL;

    Si vous utilisez des calculs dynamiques sur des dimensions denses, remplacez la commande CALC ALL par les dimensions spécifiques que vous devez calculer (par exemple, CALC DIM EAST).

    Remarques :

    Si vous essayez de valider le script, Essbase signale une erreur. Ignorez l'erreur.

  4. Exécutez le script.
  5. Recherchez le premier message de calcul dispersé dans le journal de l'application et notez l'heure dans le message.
  6. Notez l'heure de chaque message suivant.
  7. Calculez les dimensions denses du modèle qui ne sont pas calculées dynamiquement :
    CALC DIM (DENSE_DIM1, DENSE_DIM2, …);
  8. Calculer les dimensions dispersées du modèle :
    CALC DIM (SPARSEDIM1, SPARSEDIM2, …);
  9. Projeter les intervalles auxquels les notifications se produiront, puis vérifier par rapport aux résultats de calcul dispersés. Vous pouvez ensuite estimer le temps de calcul.

Référencez les commandes de calcul :

Estimation du temps de calcul

Enregistrez les résultats du calcul simulé et utilisez-les pour estimer le temps de calcul réel pour votre cube en mode "block storage" Essbase.

Pour estimer le temps de calcul total :

  1. Notez les heures de tous les intervalles entre les messages du journal d'application générés par SET NOTICE HIGH.

    Reportez-vous au tableau ci-dessous.

  2. Utilisez le calcul suivant pour estimer le temps d'un calcul réel :

    Temps total requis pour le calcul simulé, divisé par le premier intervalle d'avis de calcul simulé, multiplié par le premier intervalle de temps de calcul réel.

    Tableau 34-1 Exemples d'intervalle entre les messages de journal

    Numéro d'avis de calcul Intervalle de temps de calcul simulé (en secondes) Intervalle de calcul des dimensions dispersées (en secondes)

    1

    7

    45

    2

    5

     

    3

    6

     

    4

    3

     

    5

    4

     

    6

    2

     

    7

    6

     

    8

    4

     

    9

    3

     

    10

    3

     

    Temps de calcul total

    43

     

    Dans cet exemple, 43 / 7 * 45 = 276,4 secondes, le calcul réel devrait donc prendre 276,4 secondes.

Facteurs affectant la précision de l'estimation

La précision des estimations basées sur un calcul simulé d'un cube en mode "block storage" Essbase peut être affectée par des facteurs tels que la densité des blocs et la structure de l'outline.

Le calcul simulé doit renvoyer un temps précis à environ 5 %, si les facteurs clés à l'origine des variations ne sont pas présents.

Lorsque ces facteurs sont présents, cette technique d'estimation prédit de plus près le temps de calcul lorsque Essbase atteint 30 à 40 % des calculs simulés (30 à 40 % des messages générés par SET NOTICE HIGH).

Variations dues à une chaîne d'influences

L'utilisation de SET MSG ONLY comme technique d'estimation du temps de calcul doit être validée par rapport à des intervalles CALCNOTICE ultérieurs. Les résultats de cette technique d'estimation varient en raison de la chaîne d'influences suivante :

  1. Les blocs diffèrent dans la densité des blocs par le processus de consolidation réel.

  2. La vitesse d'écriture des blocs sur le disque par Essbase est donc différente.

  3. Le taux de traitement des blocs dans le cache est donc différent.

  4. Les résultats réels peuvent différer du temps de calcul prévu.

Variations dues à la structure de l'outline

Un autre facteur qui peut faire diverger considérablement les résultats réels par rapport aux prévisions est la structure de l'outline. Les calculs basés sur des intervalles CALCNOTICE supposent un temps de traitement équilibré tout au long de l'outline. Les facteurs qui peuvent fausser cet équilibre sont les suivants :

  • Le modèle contient une ou deux dimensions dispersées qui sont grandes par rapport aux autres dimensions dispersées.

  • Les dimensions plus grandes ont des configurations de membres qui entraînent plusieurs consolidations partagées.

Modifier le plan en fonction des résultats

Après avoir estimé et analysé un calcul simulé d'un modèle de votre cube en mode "block storage" Essbase, vous pouvez modifier l'outline pour améliorer les performances.

De haut en bas dans l'outline, ordonnez les dimensions dispersées pour créer le moins d'augmentations en pourcentage dans les blocs supérieurs :

  • Blocs de niveau 0 suivant la charge complète du modèle : 100 000

  • Blocs de niveau supérieur après consolidation de la dimension dispersée 1 uniquement : 1 000 000

  • Blocs de niveau supérieur après consolidation de la dimension dispersée 2 uniquement : 3 000 000

  • Blocs de niveau supérieur après consolidation de la dimension dispersée 3 uniquement : 10 000 000

  • Blocs de niveau supérieur après consolidation de la dimension dispersée 4 : 300 000

  • Blocs de niveau supérieur après consolidation de la dimension dispersée 5 uniquement : 5 700 000

Exemple :

  • #4 (membres = 10 000, 4 niveaux)

  • #1 (membres = 500, 2 niveaux)

  • #2 (membres = 100, 4 niveaux)

  • #5 (membres = 10 000, 4 niveaux)

  • #3 (membres = 20, plat)

Utilisez le calcul simulé pour générer le nombre de blocs supérieur. Ces chiffres peuvent être exacts malgré les dimensions réelles comme indiqué à côté des éléments ci-dessus.

Attention :

Le plus grand nombre de membres n'est pas toujours un bon prédicteur.

Pensez à utiliser le mode hybride. Dans un cube en mode hybride, vous pouvez facilement personnaliser l'ordre de résolution au lieu de réorganiser l'ordre dimensionnel.