Pourquoi le temps d'exécution d'une règle métier varie-t-il ?

Bien souvent, les utilisateurs remarquent que le temps d'exécution d'une règle métier varie d'un environnement à l'autre ou lorsqu'elle est utilisée avec différentes invites d'exécution. La différence de temps d'exécution est toujours associée à la quantité de données (nombre de blocs, de cellules, etc.) que la règle traite.

Dans Calculation Manager, à la fin de l'exécution d'une règle métier sur un cube BSO, des messages de journal apparaissent dans un nouvel onglet. Vous pouvez exporter ces messages vers un fichier CSV pour les analyser et les comparer plus facilement. Les messages de journal contiennent une section Message d'information du calculateur comportant des informations semblables à ce qui suit :

Total Block Created: [XXXX] Blocks
Sparse Calculations: [XXXX] Writes and [XXXX] Reads
Dense Calculations: [XXXX] Writes and [XXXX] Reads
Sparse Calculations: [XXXX] Cells
Dense Calculations: [XXXX] Cells

Dans cet exemple, [XXXX] indique un nombre tel que 1.2600e+02. Pour convertir [XXXX] en nombres réels qui indiquent les calculs ainsi que les opérations de lecture et d'écriture effectuées sur les blocs et les cellules, procédez comme suit :

  1. A l'aide de Microsoft Excel, ouvrez le fichier CSV qui contient les messages de journal d'un environnement ou d'une règle.
  2. Repérez la section Message d'information du calculateur, par exemple :
    Total Block Created: [0.0000e+00] Blocks
    Sparse Calculations: [2.7760e+03] Writes and [4.4136e+04] Reads
    Dense Calculations: [0.0000e+00] Writes and [0.0000e+00] Reads
    Sparse Calculations: [1.1561e+08] Cells
    Dense Calculations: [0.0000e+00] Cells
  3. Copiez chaque valeur de la section Message d'information du calculateur dans des cellules libres voisines, puis définissez le format de cellule sur Nombre.
    Message d'information du calculateur reformaté

    Lors du reformatage de ces cellules, les valeurs 2.7760e+03 et 4.4136e+04 de la ligne Sparse Calculations: = [2.7760e+03] Writes and = [4.4136e+04] Reads sont converties en nombres réels : 2776.000 et 44136.00.

  4. Répétez les étapes précédentes pour obtenir le nombre de calculs et d'opérations de lecture et d'écriture effectuées sur les blocs et les cellules dans l'environnement ou la règle dont vous comparez les performances.
  5. Comparez les calculs ainsi que les opérations de lecture et d'écriture effectuées pour déterminer le motif de la différence de performances.

    La raison peut être une modification de l'invite d'exécution, par exemple, la même règle peut devoir gérer plus de blocs et de cellules lors de deux exécutions sur le même processus. En règle générale, un calcul peut mettre plus de temps à s'exécuter s'il gère plus de blocs et de cellules. De même, les calculs qui entraînent des valeurs de lecture ou d'écriture supérieures mettent plus de temps à s'exécuter que ceux qui ont des valeurs inférieures.