1

I'm trying to understand how analysis services determines which aggregations to compute when processing a cube. From what I have read it seems as if user-defined hierarchies are used for this purpose in that aggregations are pre-computed based on their structure. In contrast to this, attribute hierarchies do not contribute towards this pre-computation.

A previous question has been posed here but I was wondering whether there are any other resources online that explain this in more detail.

Thanks.

Community
  • 1
  • 1
min.emerg
  • 11
  • 1

1 Answers1

1

This is a tremendous paper that every SSAS developer should read... SQL Server 2008 White Paper: Analysis Services Performance Guide

Analysis Services enables you to build two types of user hierarchies: natural and unnatural hierarchies, each with different design and performance characteristics. In a natural hierarchy, all attributes participating as levels in the hierarchy have direct or indirect attribute relationships from the bottom of the hierarchy to the top of the hierarchy.

In an unnatural hierarchy, the hierarchy consists of at least two consecutive levels that have no attribute relationships. Typically these hierarchies are used to create drill-down paths of commonly viewed attributes that do not follow any natural hierarchy. For example, users may want to view a hierarchy of Gender and Education.

From a performance perspective, natural hierarchies behave very differently than unnatural hierarchies. In natural hierarchies, the hierarchy tree is materialized on disk in hierarchy stores. In addition, all attributes participating in natural hierarchies are automatically %CONSIDERED% to be aggregation candidates.

Unnatural hierarchies are not materialized on disk, and the attributes participating in unnatural hierarchies are not automatically considered as aggregation candidates. Rather, they simply provide users with easy-to-use drill-down paths for commonly viewed attributes that do not have natural relationships. By assembling these attributes into hierarchies, you can also use a variety of MDX navigation functions to easily perform calculations like percent of parent.

Also, being "considered" as an aggregation candidate DOES NOT mean the attribute will actually be used in an aggregation. Download the paper in the top link...read it and pay special attention to the "Aggregation Usage Rules" and "Influencing Aggregation Candidates" sections.

fwiw, in production, most developers start the aggregation wizard and eventually switch over to Usage-Based Optimization.

Bill Anton
  • 2,920
  • 17
  • 23