The Intelligence Server generates various indexes that allow it to speed up performance for the various reports that would use the cube. Cube index generation will increase cube size. For more details on Intelligent Cube size increase, refer to the following technical note:
KB33449: Intelligent Cube size increases over time in the Strategy Intelligence Server 9.4.x - 10.x
This technical note provides a detailed explanation on how Intelligent Cube index generation works in Strategy 9.x.
In terms of intelligent Cube indexes, there are mainly two types: True Level Index, All Level Index (also known as Main Index).
Take, for example, the following attributes are present in the template:
Region, Call Center, Year, Quarter, Category, Subcategory.
Now, suppose a metric called M01 is added, then the following two indexes will be created during the first execution and these two indexes will NOT be deleted:
Ind1: Region, Call Center, Year, Quarter, Category, Subcategory (This is the All Level Index)
Ind2: Call Center, Quarter, Subcategory (This is the True Level Index)
True Level Index is the combination of the LOWEST-level attribute of all hierarchies. Imagine picking any 3 of the above attributes. First consider a report involving {Region, Call Center, Quarter}, then the two indexes below will be created as follows:
Ind1: {Region, Call Center, Quarter}
Ind2: {Call Center, Quarter}
Next consider a report involving {Call Center, Year, Quarter}, then only one more index will be created:
Ind3: {Call Center, Year, Quarter}
This is because Ind3 and Ind1 SHARE their true-level index, which is Ind2.
As a general rule, if picking X attributes out of a total of Y attributes, the number of indexes created will be C(Y,X), not P(Y,X). Because attribute order doesn't have an impact here, no matter attribute {Year} is before or after {Quarter}, the index is the same: {Year, Quarter}, which is a True-Level index.
And due to the existence of True-Level indexes, the number of indexes created can only be approximately PROPORTIONAL to C(Y,X) = Y!/(X!(Y-X)!); this number will actually be less than C(Y, X) since the True Level Index can be shared, as explained above.
If an Intelligent Cube has Y attributes, the maximum possible number of indexes is 2^Y = C(Y,0) + C(Y,1) + … + C(Y,Y-1) + C(Y,Y), for all values of X that satisfies 0<=X<=Y.