当非键属性包含 1,000,000 个或更多成员和在键属性的 95% 内的基数时,应禁用属性层次结构或将 AttributeHierarchyOptimizedState 属性设置为 NotOptimized
此规则分析在估计成员数超过 1 百万的每个维度中启用的属性层次结构。此分析确定在维度中是否存在已启用的属性,这些属性的估计数大于键属性的估计数的 95%。估计数大于键属性的估计数的 95% 的属性有较大的基数,即,与键属性几乎达到 1 比 1 的关系。
注意 |
---|
已启用的特性将其 AttributeHierarchyEnabled 属性设置为 True。 |
最佳实践建议
为了获得最佳性能,具有较大基数的特性通常应配置为成员属性,而不是可浏览的特性。若要将特性配置为只在作为成员属性时可见,请将该特性的 AttributeHierarchyEnabled 属性设置为 False。
对具有较大基数的特性启用属特层次结构,通常会导致查询性能很低,并且常常不会返回有用的查询结果。此外,具有较大基数的特性通常不会依赖或分组为较少成员共享值。例如,电话号码可以看作是每位客户的成员属性。但是,能够依赖电话号码及基于电话号码进行分组并不重要。
如果仍要浏览具有较大基数的特性,则除了 AttributeHierarchyEnabled 属性,还可以考虑设置以下特性属性:
将 AttributeHierarchyOptimized 属性设置为 NotOptimized。
将 GroupingBehavior 属性设置为 DiscourageGrouping。
这将改善性能,并向客户提供信息,说明该特性对于分组不是非常有用。
有关详细信息
有关特性属性的详细信息,请参阅 SQL Server 联机丛书中的定义和配置维度属性。
有关与具有较大基数的属性相关的性能问题的详细信息,请参阅 SQL Server 2005 Analysis Services 性能指南中的“降低属性开销”部分。