Understanding BSO Data Storage in Essbase

Not only is Essbase a leading calculation engine, but as a multidimensional database, it is also efficient at storing data. Essbase creates data blocks and an index system in order to access and store data into a cube.


The cube above contains three dimensions:

  1. Scenario
  2. Accounts
  3. Period

Data values are intersections of members from different dimensions that are stored in one cell of the database. For instance, an example of a data value in the cube above is where Sales intersects with Actual and January.

As mentioned above, Essbase accesses and stores data by using data blocks and an index system. A data block is created for every sparse dimension intersection. When that block is created, the index is used to locate the block containing a data value, in this case, Sales -> Actual -> January. In other words, the index or the locator provides a pointer to the correct data block. Once that data block is located, Essbase can retrieve the data value and it can be viewed via Smartview.

Note: Be sure to label dense and sparse correctly in order to maximized the efficiency of the block storage system. This can be done by turning autoconfigure to false in order to be able to change your storage type. Changing a dense dimension to sparse will reduce your block size. The recommended block size is 8KB-100KB for 32 bit servers and 100KB-1MB for 64 bit servers.


  1. Data block is created
  2. Index created
  3. Once data value is located using the index, Essbase retrieves data.

The importance of Essbase and its multidimensionality play a vital role when discussing the use of data blocks and an index system. Using the multidimensional technique, users can gain insight and analyze data from any business perspective as shown in the example above (sales -> actual-> January).