Sizing the Data Cache

Data blocks reside on physical disk and in memory. The number of blocks that can be held in the data cache simultaneously depends on how much memory you allocate to the data cache.

When a block is requested, Essbase searches the data cache for the block. If Essbase finds the block in the cache, it is accessed immediately. If the block is not found in the cache, Essbase searches the index for the appropriate block number and then uses the index entry of the block to retrieve it from the appropriate data file on disk. Retrieving a requested block from the data cache is faster and therefore improves performance.

In general, if you must choose whether to allocate memory to the data cache or to the data file cache, choose the data file cache if you are using direct I/O.

Table 174 shows default and recommended settings for the data cache:

Table 174. Data Cache Size Settings

Minimum Value

Default Value

Recommended Value

3072 KB (3145728 bytes)

3072 KB (3,145,728 bytes)

0.125 * the value of data file cache size. Increase value if any of these conditions exist:

  • Many concurrent users are accessing different data blocks.

  • Calculation scripts contain functions on sparse ranges, and the functions require all members of a range to be in memory (for example, when using @RANK and @RANGE).

  • For data load, the number of threads specified by the DLTHREADSWRITE setting is high and the expanded block size is large.

In certain cases, you might need to increase the data cache when running concurrent calculations; for example, when concurrent calculations do not share any common blocks and the sparse member with the largest number of children has all its children blocks populated in the database. To calculate the data cache for concurrent calculations, use the following formula:

(Size of big block in bytes) * max(Number of children for a Sparse member) * (Number of concurrent batch calc processes) * 2

If other concurrent operations (such as data loads and queries) take place when running concurrent calculations, increase the data cache even more to accommodate these requests.

Make the data cache as small as possible whether you are using buffered I/O or direct I/O.

For information on testing and fine-tuning cache settings, see Fine-Tuning Cache Settings.

Note:

When running Essbase on 64-bit platforms, optimal data cache and data file cache settings may be larger than 4 GB. Although you cannot specify settings larger than 4 GB in Essbase clients, you can enable larger settings using the MEMSCALINGFACTOR configuration setting. See the Oracle Essbase Technical Reference.