聚合存储大纲的设计注意事项
本主题列出了为 Essbase 聚合存储 (ASO) 多维数据集设计大纲时的主要设计注意事项。查询的性能与规划大纲的方式有很大关系。在考虑要作为存储层次、动态层次或备用层次(属性维和共享成员)实施哪些层次时,请使用此处的建议。
有关设计建议的实施示例,请参见图库中提供的 ASOsamp.Basic 多维数据集。
设计 ASO 大纲
设计聚合存储大纲时,请考虑以下信息:
-
尽可能使用存储的层次结构(而不是动态层次结构)。
-
仅在必要时使用共享成员。
-
最大程度地减少层次结构的数量。(例如,每个附加的存储分层结构会减慢视图选择速度,并可能增加聚合数据的大小)。
-
如果层次结构是第一个层次结构的小子集,请考虑将小层次结构设为动态层次结构。注意事项包括查询层次数据的频率以及检索时动态查询层次数据的查询性能影响。
-
属性的性能与存储层次上的成员相同。
-
属性与基本成员的关联级别越高,检索查询的速度就越快。
属性维和 ASO 多维数据集
本主题提供有关聚合存储多维数据集与块存储多维数据集在属性方面的差异的信息。要使用此主题中的信息,您应该已经熟悉块存储的属性概念。请参阅使用 Essbase 属性。
在聚合存储多维数据集上使用时,以下信息适用于属性维:
-
属性维中仅提供加 (+) 合并运算符。
-
对于给定的属性维,所有关联必须与基本维的一层关联。例如,在 ASOsamp.Basic 多维数据集中,“商店经理”属性维的关联与“商店”维的级别 0 关联。以下限制适用于属性关联:
-
级别 0:您可以将属性与没有公式的动态或存储层次的任何级别 0 成员关联。
-
非级别 0:您只能将属性与主要存储层次中的上层成员关联。
-
属性维没有层次结构类型。不能将属性维指定为动态或存储的层次。Essbase 将属性维视为基本维的存储备用层次。例如,在 ASOsamp.Basic 数据库中, Essbase 将“存储管理器”属性维视为“存储管理器”维的存储备用层次。
启用查询跟踪时, Essbase 会考虑对属性维数据的查询,并且可能会在聚合视图选择中包含属性维成员。请参阅根据使用情况选择视图。
注意:
对与非 0 级成员关联的属性成员的查询将返回非 0 级成员后代的值。对聚合存储多维数据集中的属性成员的查询行为与块存储多维数据集中的行为不同。
ASO 多维数据集上的属性查询
根据属性查询数据选择和构建视图时,对属性数据的某些查询始终在检索时动态计算,这可能会影响查询性能。
涉及属性维成员的每个查询还必须包括基本维中的至少一个成员。如果查询涉及单个属性维和总和维成员,则 Essbase 会聚合查询数据,从而可能提高查询性能。在其他情况下, Essbase 必须在检索时计算查询。
下表介绍了属性查询类型以及 Essbase 如何计算查询:
表 36-2:属性查询和计算性能
| 属性查询类型 | 查询计算类型 |
|---|---|
|
查询涉及一个属性维中的所有基本维成员和成员的总和。 |
Essbase 可以聚合查询数据,从而提高查询性能。 |
|
查询涉及基本维的任何成员以及来自多个属性维的成员。 |
Essbase 根据 0 级输入数据计算检索时的查询。 |
|
查询涉及基本维成员(或标记为仅标签的维成员)和来自一个属性维的成员的任何子成员。 |
Essbase 根据 0 级输入数据或基本维上的聚合数据计算检索时的查询。 |
在下方的大纲图中,RealDimension 是其所有后代的总和(它不标记为仅标签)。如果查询涉及来自单个属性维(例如 AttributeDimension1)的一个或多个成员,并且与基本维成员 (RealDimension) 交叉,则 Essbase 可以为数据构建聚合单元格,从而可能提高查询性能。
但是,始终在检索时计算以下查询:
-
从属性维(例如 AttributeDimension1)和 RealDimension 的任何子项请求成员数据的任何查询在检索时根据级别 0 输入数据或来自聚合的数据动态计算。
-
从多个属性维(例如 AttributeDimension1 和 AttributeDimension2)和基本成员维(例如 RealDimension)请求数据的任何查询都基于 0 级输入数据在检索时动态计算。
图 36-4:属性查询示例的大纲

属性查询和多个层次结构
从具有多个层次的维查询数据时,如果按以下方式查询数据,查询性能可能会提高:
-
选择要查询的层次。
-
导航以查找详细数据(例如,通过在 Smart View 中的层次上放大)。
在同一查询中包括动态层次成员和存储层次成员可能需要较大的内部内存高速缓存,这会降低查询性能。