There are five configuration settings that are relevant to dynamic calculator caches. The optimum values for these dynamic calculator cache settings depend on the memory on the server machine, the configuration of all databases on the server machine, and the nature of user queries.
The following description of each configuration setting includes recommendations for how to determine values for your system. To match your site’s unique requirements, you may need to test and adjust the settings.
DYNCALCCACHEMAXSIZE: This setting specifies the maximum size Essbase can allocate to each dynamic calculator cache on the server.
Recommended setting value = C * S * U.
C is the value of the appropriate CALCLOCKBLOCK setting in the essbase.cfg file. (The SET LOCKBLOCK command specifies which CALCLOCKBLOCK setting to use.)
S is the size of the largest expanded block across all databases on the machine. To calculate the expanded block size, multiply the number of members (including Dynamic Calc members and dynamic time series members) in each dense dimension together for the number of cells in the block, and multiply the number of cells by the size of each member cell, 8 bytes.
For example, consider the member count in dense dimensions in Sample.Basic (Label Only members are not counted):
19 (Year, with 12 stored members and 7 Dynamic Calc members, including HTD and QTD)
14 (Measures, with 8 stored members and 6 Dynamic Calc members)
4 (Scenario, with 2 stored members and 2 Dynamic Calc members)
S = 19 * 14 * 4 cells (8 bytes / cell) = 8512 bytes per block
This number is shown in the application log as the logical block size.
U is the maximum number of expected concurrent users on the database that has the largest number of concurrent users.
Assigning the value 0 (zero) to DYNCALCACHEMAXSIZE tells Essbase not to use dynamic calculator caches.
By default, the maximum size for this value is 20 MB (20,971,520 bytes).
DYNCALCCACHEWAITFORBLK: If Essbase uses all of the area allocated for a dynamic calculator cache, this setting tells Essbase whether to wait until space becomes available in the cache or to immediately write and calculate the blocks in memory outside the dynamic calculator cache. If the dynamic calculator cache is too small, it is possible for multiple threads to be in queue, each thread waiting to calculate its data blocks.
Recommended setting value = FALSE (default value).
Before setting to TRUE, try these alternatives:
Add physical memory to the server machine
Increase the value of DYNCALCCACHEMAXSIZE, test, and repeat until you verify that you cannot use any more memory for the dynamic calculator cache.
DYNCALCCACHEBLKTIMEOUT: If Essbase is to wait for available space in the dynamic calculator cache, this setting defines how long it waits.
Recommended setting value = WT / B.
WT is the maximum tolerable wait time for a query; for example, 5 seconds.
B is the total number of logical blocks accessed in the largest query.
To determine the value of B, check the messages in the application log for the largest number of Dyn.Calc.Cache “Big Block Allocs” for a query, as discussed in Reviewing Dynamic Calculator Cache Usage.
DYNCALCCACHEBLKRELEASE: If Essbase has waited the specified time and space still is not available in the dynamic calculator cache, this setting tells Essbase whether to write and calculate the blocks immediately outside the dynamic calculator cache or to create space in the dynamic calculator cache by swapping out blocks and temporarily compressing the swapped blocks in a dynamic calculator cache compressed-block buffer.
Recommended setting value = FALSE (default value).
Set to TRUE only if you are experiencing severe memory shortage problems.
DYNCALCCACHECOMPRBLKBUFSIZE: If Essbase has waited the specified wait time and the DYNCALCCACHEBLKRELEASE setting is TRUE, this setting is the size of the dynamic calculator cache compressed-block buffer.
Recommended setting value = (C * S) / 2.
C is the value of the current CALCLOCKBLOCK setting in the essbase.cfg file. The SET LOCKBLOCK command specifies which CALCLOCKBLOCK configuration setting is current.
S is the size of the largest expanded block across all databases on the machine. Calculate S as described for the DYNCALCCACHEMAXSIZE setting.
After changing any parameter in the essbase.cfg file, you must stop and restart Essbase Server to use the new values. |
For information about specific dynamic calculator cache settings, see the Oracle Essbase Technical Reference.