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
0.125 * the value of data file cache size. Increase value if any of these conditions exist: |
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.