# Essbase BSO Block Size and Database Size Calculator

> Source: https://netray.co/tools/essbase-bso-block-size-database-size-calculator
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Enter stored member counts for dense and sparse dimensions and get block size, block counts and estimated .pag and .ind sizes for a block storage cube.

## Category

oracle

## Erp

Oracle Hyperion / Essbase

## Audience

- Essbase administrator
- EPM developer
- Hyperion consultant

## Tool

**Kind:** calculator

**Inputs:**

#### Dense dimension 1 stored members

**Key:** d1

**Type:** number

**Default:** 400

**Min:** 1

**Step:** 1

**Help:** For example Accounts. Count stored members only; exclude Dynamic Calc and label-only members.

#### Dense dimension 2 stored members

**Key:** d2

**Type:** number

**Default:** 17

**Min:** 1

**Step:** 1

**Help:** For example Period.

#### Dense dimension 3 stored members

**Key:** d3

**Type:** number

**Default:** 1

**Min:** 1

**Step:** 1

**Help:** Use 1 if you have only two dense dimensions.

#### Sparse dimension 1 stored members

**Key:** s1

**Type:** number

**Default:** 500

**Min:** 1

**Step:** 1

**Help:** For example Entity.

#### Sparse dimension 2 stored members

**Key:** s2

**Type:** number

**Default:** 2000

**Min:** 1

**Step:** 1

**Help:** For example Product.

#### Sparse dimension 3 stored members

**Key:** s3

**Type:** number

**Default:** 5

**Min:** 1

**Step:** 1

**Help:** For example Version.

#### Sparse dimension 4 stored members

**Key:** s4

**Type:** number

**Default:** 6

**Min:** 1

**Step:** 1

**Help:** For example Years. Use 1 if unused.

#### Block existence (existing / potential blocks)

**Key:** exist

**Type:** slider

**Default:** 0.5

**Min:** 0.1

**Max:** 10

**Step:** 0.1

**Unit:** %

**Help:** Read from database statistics on an existing cube.

#### Block density (non-missing cells)

**Key:** density

**Type:** slider

**Default:** 10

**Min:** 1

**Max:** 100

**Step:** 1

**Unit:** %

#### Compression

**Key:** comp

**Type:** select

**Default:** 1

**Options:**

##### Bitmap (estimate from density)

**Value:** 1

##### None (expanded blocks)

**Value:** 0

**Outputs:**

#### Cells per block

**Key:** cells

**Expr:** d1 * d2 * d3

**Format:** integer

#### Expanded block size (KB)

**Key:** block_kb

**Expr:** cells * 8 / 1024

**Format:** decimal

**Primary:** true

**Description:** Cells x 8 bytes. Oracle guidance has long been roughly 8 KB to 100 KB for most BSO cubes.

#### Potential blocks

**Key:** potential

**Expr:** s1 * s2 * s3 * s4

**Format:** integer

#### Estimated existing blocks

**Key:** existing

**Expr:** potential * exist / 100

**Format:** integer

#### Estimated stored bytes per block

**Key:** stored_bytes

**Expr:** if(eq(comp, 1), cells * 8 * density / 100 + cells / 8, cells * 8)

**Format:** integer

**Description:** Bitmap: 8 bytes per non-missing cell plus one bit per cell. Excludes block headers and fragmentation.

#### Estimated .pag size (GB)

**Key:** pag_gb

**Expr:** existing * stored_bytes / 1073741824

**Format:** decimal

**Primary:** true

#### Estimated .ind size (MB)

**Key:** ind_mb

**Expr:** existing * 112 / 1048576

**Format:** decimal

**Description:** 112 bytes per index entry, per the Essbase DBAG sizing method.

**Chart:**

#### Estimated .pag size vs block existence

**Type:** line

**X:** exist

**From:** 0.1

**To:** 5

**Steps:** 25

**Series:**

- pag_gb

**Disclaimer:** Planning estimate based on the Essbase Database Administrator's Guide sizing method (8 bytes per cell, 112 bytes per index entry). Real files are larger because of block headers, fragmentation and free space; compare with database statistics on a loaded copy.

## Content

**Intro:** This calculator estimates block size, block counts and the size of the .pag and .ind files for an Oracle Essbase block storage (BSO) database from its dense and sparse member counts. It applies to Essbase 11.1.2.x and 21c BSO cubes.

**Sections:**

#### How to use it

**Body:** Enter the number of stored members in each dense dimension and each sparse dimension. Stored means members that hold data: exclude Dynamic Calc members (they are calculated at retrieval and not stored in the block), label-only members and shared members. Then set block existence, the share of potential blocks that actually exist, and block density, the share of cells in an existing block that are not #Missing. On an existing cube, both figures are shown in the database statistics in Administration Services or the Essbase web interface, and should replace the defaults.

**Bullets:**

- Dense dimensions define the block; sparse combinations define how many blocks exist.
- Use 1 for unused dimension slots.
- Re-run the estimate after changing which dimensions are dense.

#### The method behind the numbers

**Body:** Essbase stores each cell as an 8-byte double, so the expanded block size is cells per block x 8 bytes, where cells per block is the product of stored dense members. Potential blocks are the product of stored sparse members; existing blocks are potential x existence. Each existing block has one index entry of 112 bytes in the .ind file, which is the figure Oracle's DBAG uses for index estimates. With bitmap compression, an existing block stores roughly 8 bytes per non-missing cell plus a bitmap of one bit per cell, which is how the stored size is estimated from density here.

#### Worked example and how to read it

**Body:** With the defaults, 400 x 17 x 1 = 6,800 cells per block, or about 53 KB expanded, inside the commonly recommended 8 KB to 100 KB range. Sparse potential is 500 x 2,000 x 5 x 6 = 30 million blocks; at 0.5% existence that is 150,000 blocks. At 10% density each block stores about 6,290 bytes, so the .pag estimate is just under 1 GB and the .ind estimate about 16 MB. If the block size lands well above 100 KB, consider making a dense dimension sparse; if density is very low, the dense and sparse choice is probably wrong.

**Bullets:**

- Block size too small: many blocks, large index, slow calcs.
- Block size too large: high memory per block, poor cache use.
- Existence above a few percent suggests a dimension may be better dense.

**Cta:** If you want finance and planning users to ask questions of your Essbase cubes in plain English on your own servers, we can add a private AI layer over them.

**Faq:**

#### How is Essbase block size calculated?

**Answer:** Multiply the number of stored members in each dense dimension to get cells per block, then multiply by 8 bytes per cell. For example 400 accounts x 17 periods = 6,800 cells, which is 54,400 bytes or about 53 KB. Dynamic Calc and label-only members are not counted.

#### What is a good Essbase block size?

**Answer:** Oracle's long-standing guidance for BSO is a block size of roughly 8 KB to 100 KB, with the right value depending on density, calc patterns and available memory. Test a few dense and sparse configurations on representative data and compare calc and retrieval times rather than relying on size alone.

#### What is an Essbase cube?

**Answer:** An Essbase cube is a multidimensional database inside an Essbase application, made of dimensions such as Accounts, Period, Entity and Product. In block storage (BSO), dense dimensions form data blocks and sparse dimension combinations index those blocks. Aggregate storage (ASO) cubes use a different structure and are not sized with this method.

#### Where do I find block density and existence for my cube?

**Answer:** Open the database properties or statistics in Essbase Administration Services or the Essbase web interface. They show existing blocks, potential blocks, block density and compression ratio. Use those values instead of the defaults here, and refresh them after a full restructure or data load.

## Search terms

essbase block analysis report, essbase block size calculator, essbase cube, what is essbase cube, essbase application, essbase technical reference, essbase database size estimate

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
