If the index is large, and you want to use Intelligent Calculation, you can use any of the following options for the best performance. All three options perform the same tasks.
Calculate the full database and marks the data blocks as clean.
Mark the recalculated blocks as clean, even though this calculation is a partial calculation of the database. If you do not use the command SET CLEARUPDATESTATUS AFTER, Essbase marks data blocks as clean only after a full calculation of the database.
Essbase cycles through the database, calculating only the formula for the relevant member (Share of Sales in our example), or calculating all formulas tagged as two-pass in the database outline.
Use this model to create a calculation script that performs a full calculation of the database with Intelligent Calculation enabled:
SET UPDATECALC ON; CALC ALL; SET UPDATECALC OFF; SET CLEARUPDATESTATUS AFTER; "Share of Sales" = Sales % Sales -> Product;
To tag a member as two-pass, and use a calculation script to calculate first the full database, then the two-pass member:
Place a formula in the database outline and tag it as two-pass.
Place the formula on the appropriate member in the dimension tagged as accounts, in our example, Share of Sales.
Create a calculation script that performs a full database calculation and then a two-pass calculation:
SET UPDATECALC ON; CALC ALL; SET UPDATECALC OFF; SET CLEARUPDATESTATUS AFTER; CALC TWOPASS;
To perform a default calculation from a client and then use a calculation script to perform the formula calculation:
Enable Intelligent Calculation, if this default has been changed.
Perform a full calculation, using any of the tools listed in Table 189, Methods for Performing a Full Calculation .
Use a calculation script similar to this example to disable Intelligent Calculation and calculate the formula:
SET UPDATECALC OFF; SET CLEARUPDATESTATUS AFTER; "Share of Sales" = Sales % Sales -> Product;
SET UPDATECALC OFF; SET CLEARUPDATESTATUS AFTER; CALC TWOPASS;
See Understanding Intelligent Calculation, Developing Formulas for Block Storage Databases, and Developing Calculation Scripts for Block Storage Databases.