You are on page 1of 1

Essbase OptimizationZeros and #Missing.

I have been working with Essbase for over 15 years and I am always amazed when v
isiting clients how many have issues around zeros and existing missing data bloc
ks . For an Essbase cube using BSO (Block Storage Option) zeros can take up as
much space as regular numbers, but add no value to the application. The existing
data blocks that are made up of all #missing values still have pointers in the E
ssbase Index file, may add significant calculations time and take up unnecessary
disk space.
Removing zeros:
The first recommendation is not to load any zeros to start. Many times this is
just a training issue for users of Oracle Planning input web forms who dont reali
ze there is difference between 0 and just leaving the cell blank. Let the users
know blank is better. Second, the most likely way data with zeros is loaded is f
rom the GL. Many times offsetting entries are made in the GL with the sum being
zero. Most GLs have the ability to suppress zeros when creating the export gets
loaded to Essbase and the Actual Scenario Dimension member.
For whatever reason, sometimes large numbers of zeros are unavoidably loaded to
Essbase. There has been a tried and true, simple equation, that will replace ze
ros with #Missings. This method takes advantage of the way Essbase treats zeros
in a denominator. Essbase solves any ratio with a zero in the denominator as #m
issing. Using that fact to our advantage we can solve for a member, say, Budget
in the Scenario dimension. We do that by including a line in a Calculation scr
ipt or rule with: Budget = Bu
dget + Budget/Budget;
Believe it or not that is all it takes. Now the disclaimers: This simple type
of equation performs faster in a Dense dimension than a Sparse one, but many tim
es there are many members in each of the Dense dimensions that would each requir
e this equations. This equation should be inside a FIX statement that focuses o
n only level 0 data. As in nearly all examples with Essbase, FIXing on Level 0,
running data manipulations and finishing with an aggregation, is faster than tr
ying to manipulate all data in a single step. Important to remember, just bec
ause you were able to remove all zeros, does not mean you have removed all empty
data blocks.
Removing Empty Data Blocks:
There are a couple of ways of removing empty data blocks. One is using the MaxL
command: alter database <DBS-Name> force
restructure
The downside of this MaxL command is that it can take a long time for large Essb
ase databases. The preferred method in my opinion is a nightly backup process th
at:
Exports all level 0 data to a data backup
Clears database completely
Loads the data backup created in Step 1.
Aggregate entire cube

You might also like