Calculation Passes

Whenever possible, Essbase calculates a database in one calculation pass through the database. Thus, it reads each of the required data blocks into memory only once, performing all relevant calculations on the data block and saving it. However, in some situations, Essbase must perform multiple calculation passes through a database. On subsequent calculation passes, Essbase brings data blocks back into memory, performs further calculations on them, and saves them again.

When you perform a default, full calculation of a database (CALC ALL), Essbase attempts to calculate the database in one calculation pass. If you have dimensions that are tagged as accounts or time, Essbase may have to do multiple calculation passes through the database.

Table 74 shows the number of calculation passes Essbase performs if you have dimensions that are tagged as time or accounts, and you have at least one formula on the accounts dimension:

Table 74. Calculation Passes For Accounts and Time Dimension

Dimension Tagged As Accounts

Dimension Tagged As Time

Calculation Passes

During each calculation pass, Essbase calculates based on:

Dense or Sparse

None

1

All dimensions

Dense

Dense

1

All dimensions

Dense

Sparse

2

Pass 1: Accounts and time dimensions

Pass 2: Other dimensions

Sparse

Sparse

2

Pass 1: Accounts and time dimensions

Pass 2: Other dimensions

Sparse

Dense

2

Pass 1: Accounts dimension

Pass 2: Other dimensions

If you are using formulas that are tagged as Two-Pass, Essbase may need to do an extra calculation pass to calculate these formulas. See Using Two-Pass Calculation.

When you use a calculation script to calculate a database, the number of calculation passes Essbase needs to perform depends upon the calculation script. See Calculation Passes and Understanding Multiple-Pass Calculations. Also see Grouping Formulas and Calculations.

If the isolation level is set for committed access, and multiple passes are required, Essbase writes data values at the end of each pass. Data retrievals that occur between passes can pick up intermediate values.

When you calculate a database, Essbase automatically displays the calculation order of the dimensions for each pass through the database and tells you how many times Essbase has cycled through the database during the calculation. Essbase displays this information in the ESSCMD window and in the application log.

  To display the application log, see Viewing the Essbase Server and Application Logs.

For each data block, Essbase decides whether to do a dense or a sparse calculation. The type of calculation it chooses depends on the type of values within the data block. When you run a default calculation (CALC ALL) on a database, each block is processed in order, according to its block number.

Essbase calculates the blocks using this procedure: