Databases Reference
In-Depth Information
The separation of logical and physical plans enables Analysis Services to postpone the
execution of expensive operations, such as data retrieval or operations over large datasets,
until an optimal execution plan is created. However, sometimes the system needs to
perform relatively expensive operations during the logical plan construction. For example,
while building a logical plan for an IIF operator, Analysis Services might need to execute
a condition operator to decide which branch will be used. This permits the system to split
up the space in two parts and build a logical and then physical plan only for the part of
multidimensional space that satisfies the condition. This approach works very well for
some formulas, but can have a negative impact on others. You can change system behav-
ior by providing hints to the IIF expression. Analysis Services 2008 supports two hints:
EAGER and STRICT . The EAGER hint means that the system will keep an original subcube
and won't split it based on the condition of the IIF operator. The STRICT hint means the
opposite and recommends the system to split the space. With hints, you are just providing
the recommendations to the system, but Analysis Services will make the final decision.
Cache Subsystem
Performance of data access depends on the availability of this data in the cache. Analysis
Services supports a few levels of caching:
.
Dimension and measure group caches to cache the data retrieved from the storage
engine
.
Formula caches to store data calculated by the formula engine
Dimension and Measure Group Caches
When the formula engine needs to get data from the storage engine, it first sends the
request to the cache system, which returns data if it exists in the cache; otherwise, the
cache system requests data from the storage engine and saves it in the cache. Analysis
Services supports this scheme for two types of caches: the dimension cache, which
contains results of queries for dimension data; and the measure group cache, which
contains the results of queries to get cell values. Each dimension and each measure group
has its own cache.
The measure group cache and dimension cache have the same data structure; therefore,
we will call both of them the data cache registry . When the formula engine needs to
request data from the data cache registry, it generates a subcube that defines the subspace
required for the calculations. In the best case, this subcube contains a single slice of data
and its granularity. For example, if the formula engine needs to retrieve data about sales in
the United States by the months of 1997, it generates a subcube that defines the granular-
ity on the Stores and Months attributes, and a slice on USA and 1997 members. The granu-
larity defines the list of attributes from which data is requested, and the slice defines a list
of members from those attributes.
Search WWH ::




Custom Search