Databases Reference
In-Depth Information
In this example, the Month attribute is a varying attribute for the Time.Time.PrevMember
expression. Knowledge of varying and invarying attributes allows Analysis Services to
dramatically shrink the number of cells for which it needs to evaluate an expression. Now
the system does not need to evaluate an expression in the context of all the cells of the
subspace (in our example, nine times). Instead, it can do so only for members of the
varying attributes (three times in our example). To achieve this goal, Analysis Services
creates a join table transform—a logical operator that maps original members of the
varying attribute used in the query to the results of the expression. For our example,
Analysis Services builds the join table shown in Figure 29.13.
Non-
Consumable
Drink
Food
June
May
May
May
July
June
June
June
August
July
July
July
FIGURE 29.12
Results of the PrevMember expression depend only on the Time dimension.
Input
Output
June
May
July
June
August
July
FIGURE 29.13
Join table for the PrevMember expression.
In some scenarios, Analysis Services does not need to use a join table to perform opera-
tions over the subspace. Sometimes it can use a simple static transform that maps a single
member to another member (for example, to map from the calculated member to the
physical member). At other times, the system cannot use a join table transform (for
example, when operating over unnatural hierarchies). In such cases, Analysis Services tries
to break an original subcube into smaller portions and tries to apply either a join table
transform or static member transform on each subcube. This approach will produce many
small subcubes and as a result, formula engine will send many queries to storage engine
subsystem. Analysis Services implements optimized logical operators for most MDX func-
tions however, some functions don't have specialized logical operators and use a generic
one. For example, stored procedure calls do not have their own logical operators, because
the system does not have any information about their behavior. To view a list of functions
that have advanced logical operators, refer to the Books Online article, “Performance
Improvements for MDX in SQL Server 2008 Analysis Services,” at http://msdn.microsoft.
com/en-us/library/bb934106.aspx.
Search WWH ::




Custom Search