So what is Dense and Sparse Dimensions??
Essbase outline has a lot of components. One of the most
important components is Dimension.
Dimensions are the representations of business components
and might be of standard or attribute types.
Standard Dimensions are basically of two types: Dense &
Sparse.
So basically by oracle documentation,
“A dense dimension has a high probability that
one or more cells is occupied in every combination of dimensions.”
“A sparse dimension is one with a low percentage
of available data positions filled.”
However, the above definition is valid only with reference
of data positions or data cells filled or not. What about the case when we do
not have any data.
How does Essbase identifies whether the added new dimension
is a Sparse or Dense..
To understand that I did a simple test.
We create an application from scratch with just some random
dimensions “A”, “B”, “C”, and “D” without any children. Then we check how
Essbase has treated each of the members.
Guess what, Essbase has alternately assigned each member
Dense & Sparse, starting with Dense.
-A
-B
-C
-D
Now we add two child under “A” as “A1” and “A2” and under
“B” as “B1” and “B2”. Also I have added one more dimension for further
analysis. Let’s check on the behavior now.
-A
+A1
+A2
-B
+B1
+B2
-C
-D
-E
So now we observe that Essbase checks for the dimension
which might have a probability of higher number of data positions (filled or
not for now) which relates to the member which has more number of children.
Since dimension “B” has more children so it is also assigned
as Dense apart from “A” and “E” in alternate order.
Alternately, if we assign “C” & “D” dimensions more
members and delete all other members previously created, as shown below, we
find that now “A” , “C” & “D” is assigned Dense and rest will be Sparse.
Now when I delete the members from A and create 5 stored
members each in “B” and “E” Dimensions, it takes “B” & “E” as dense apart
from the first dimension “A” though we still have 3 stored members each in
other two dimensions “C” & “D”.
This clarifies that no matter what Essbase assigns first member
always as Dense.
Conclusions so far:
So we observe that dense and sparse is
assigned by Essbase keeping in view with which dimension there has higher data
positions available till we have not assigned any tags to the dimensions.
But that’s not all, there’s more to Essbase, there is
basically the automatic configuration setting of Essbase.
Essbase can make
recommendations for the sparse-dense configuration of dimensions based on the
following factors:
§ The time and accounts tags on dimensions
§ The probable size of the data blocks
§ Characteristics that you attribute to the dimensions
In case
we do not have any of the above, it follows a simple alternate assignment
procedure of Dense & Sparse.
However the automatic
configuration of dense and sparse dimensions provides only an estimate. You can
apply a recommended configuration, or you can turn off automatic configuration
to false and manually set the sparse or dense property for each dimension.
Hope this post enlightens all newbies of Essbase a bit more on Dense and Sparse.
Cheers!!
Anvi