Databases Reference
In-Depth Information
For example, suppose that you have a simple cube with dimension D1 , and three
measures: M1 , M2 , and M3 . The cube contains the following MDX script:
Calculate;
M1=M1*M2;
Suppose also that a user issues the following query, which retrieves the values of all
measures:
SELECT measures.members ON COLUMNS,
D1.Members ON ROWS FROM cube
Analysis Services builds the logical execution plans, as shown in Figure 29.10.
D1
SELECT Measures.Members ON COLUMNS,
D1.Members on ROWS FROM Cube
M1
M2
M3
Logical Plan 1
Logical Plan 2
MDX Formula
Data-bound
Formula
M1=M1*M2
Subcube
Subcube
M1
M2
M3
FIGURE 29.10
Analysis Services analyzes the request and builds two logical execution plans.
As mentioned earlier, each node of logical execution plan contains an operation that
needs to be performed on the given subcube. For example, Analysis Services builds Logical
Plan 1 for the M1=M1*M2 expression, as shown in Figure 29.11.
While building a logical plan, Analysis Services calculates several properties of the logical
operator that it will use in later stages of execution. DefaultValue , Static or Dynamic , and
varying attributes are properties of the logical plan operators. The DefaultValue property
carries information about the value that will most often be encountered in the requested
subspace. For example, if the system can predict that a required dataset is relatively sparse,
the DefaultValue property will contain the value EMPTY —by definition, sparse data
contains a lot of empty values. For example, data stored in the OLAP storage engine is
usually sparse; in the FoodMart database, there are no values for each product sold to each
customer at any possible period of time. In many other cases, the system can automati-
cally derive the default value. For example, for a IIF operator, ”True” or “False” can be
default values. Obviously, there are plenty of scenarios when a required dataset is dense
 
Search WWH ::




Custom Search