Why Does the Execution Time of a Business Rule Vary?

Quite often, users notice that the execution time of a business rule varies from one environment to another or when used with different run-time prompts. Invariably, the difference in execution time is associated with the amount of data (number of blocks, cells, and so on) that the rule is processing.

In Oracle Hyperion Calculation Manager, after a business rule execution against a BSO cube finishes, log messages appear in a new tab. You can export these messages to a CSV file for easier parsing and comparison. Log messages contain a Calculator Information Message section containing information similar to the following

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

In this example, [XXXX] indicates a number such as 1.2600e+02. To convert [XXXX] to real numbers that indicate the calculations and read and write operations performed on blocks and cells:

  1. Using Microsoft Excel, open the CSV file that contains the log messages from one environment or rule.
  2. Locate the Calculator Information Message section, for example:
    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. Copy each value in the Calculator Information Message section into adjoining free cells and then change the cell format to Number.
    Reformatted Calculator Information Message

    On reformatting these cells, the values 2.7760e+03 and 4.4136e+04 from the line Sparse Calculations: = [2.7760e+03] Writes and = [4.4136e+04] Reads are converted to real numbers 2776.000 and 44136.00.

  4. Repeat the preceding steps to get the number of calculations and read and write operations performed on blocks and cells in the environment or rule to which you are comparing performance.
  5. Compare the calculations and read and write operations performed to determine the reason for difference in performance.

    Because of a change in the run time prompt, for example, the same rule may have to deal with more blocks and cells during two executions on the same process. Generally, a calculation may take longer to run if it deals with more blocks and cells. Similarly, calculations that entail larger read or write value take longer to run than those that have lower values.