http://msdn.microsoft.com/zh-cn/ms166717(SQL.90).aspx
默认情况下,将在 Microsoft SQL Server 2005 Analysis Services (SSAS) 中为维度中的每个属性创建一个属性层次结构,并且每个层次结构均可用于确定事实数据的维度。此层次结构由“全部”级别和包含该层次结构中所有成员的详细级别组成。正如您已经了解到的,可以将属性组织到用户定义层次结构中,以提供在多维数据集中的导航路径。在某些环境下,可能需要禁用或隐藏某些属性以及它们的层次结构。例如,某些属性(如,社会保障号码或身份证号、付费率、出生日期和登录信息)不是用户将要用来维度化多维数据集信息的属性。而这些信息通常只是作为特定属性成员的详细信息而显示。您可能需要隐藏这些属性层次结构,使这些属性只在作为特定属性的成员属性时可见。可能还需要使其他属性的成员(例如,客户名称或邮政编码)只在通过用户层次结构而不是单独通过属性层次结构进行查看时才可见。这样做的一个理由可能是属性层次结构中不同成员的个数差异太大。最后,为了改善处理性能,应该禁用用户不用于浏览的属性层次结构。
AttributeHierarchyEnabled 属性的值确定是否创建属性层次结构。如果将该属性设置为 False,则不创建属性层次结构,并且无法将该属性用作用户层次结构中的一个级别;该属性层次结构只作为成员属性存在。但是,禁用的属性层次结构仍然可以用来对另一个属性的成员进行排序。如果将 AttributeHierarchyEnabled 属性的值设置为 True,则 AttributeHierarchyVisible 属性的值将确定该属性层次结构是否可见(与是否在用户定义层次结构中使用它无关)。
启用属性层次结构时,可能需要指定以下其他三个属性的值:
- IsAggregatable
默认情况下,为所有属性层次结构定义了一个“(全部)”级别。若要禁用已启用的属性层次结构的“(全部)”级别,请将此属性的值设置为 False。
![]() |
---|
IsAggregatable 属性设置为 False 的特性只能用作用户定义层次结构的根,而且应该指定一个默认成员(否则,Analysis Services 引擎将为您选择一个成员)。
|
- AttributeHierarchyOrdered
默认情况下,Analysis Services 将在处理期间对已启用的属性层次结构的成员进行排序,然后按 OrderBy 属性的值(例如,按名称或按键)存储成员。如果您不关心排序,则可以通过将该属性的值设置为 False 来提高处理性能。 - AttributeHierarchyOptimizedState
默认情况下,Analysis Services 将在处理期间为每个已启用的属性层次结构创建索引,以提高查询性能。如果不打算使用属性层次结构进行浏览,则可以通过将该属性的值设置为 NotOptimized 来提高处理性能。但是,如果使用隐藏的层次结构作为维度的键属性,则通过创建属性成员的索引仍然能提高性能。
如果禁用了属性层次结构,则不应用这些属性。
在该主题内的任务中,将禁用不会用于浏览的“雇员”维度中的社会保障号码和其他属性。然后,将隐藏“客户”维度中的客户名称和邮政编码属性层次结构。这些层次结构中的大量属性成员将使浏览这些层次结构变得很缓慢,而与用户层次结构无关。