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:
- Using Microsoft Excel, open the CSV file that contains the log messages from one environment or rule.
- 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
- Copy each value in the Calculator Information Message section into adjoining free cells and then change the cell format to Number.
On reformatting these cells, the values
2.7760e+03
and4.4136e+04
from the lineSparse Calculations: = [2.7760e+03] Writes and = [4.4136e+04] Reads
are converted to real numbers2776.000
and44136.00
. - 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.
- 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.