成员公式中的解析顺序(仅限混合模式)

解析顺序是可以为维或成员设置的一个元数据属性,用于定义成员的求值顺序。解析顺序是在执行查询过程中应用的。

解析顺序可能会影响查询的性能。解析顺序属性的值确定成员公式的计算优先级。具有指定解析顺序的成员的公式将按解析顺序值从低到高的顺序进行计算。

您可以为维或成员设置解析顺序,也可以使用默认的 Essbase 解析顺序。可以设置的解析顺序最小值为 0,最大值为 127。解析顺序值越大意味着成员计算越靠后;例如,解析顺序为 1 的成员在解析顺序为 2 的成员之前解析。

Note:

这仅适用于混合优化应用程序。请参阅:优化应用程序模型以启用混合聚合

Table 15-14 默认解析顺序设置

维/成员类型 默认解析顺序值
存储成员 0
稀疏维 10
密集维 - 帐户 30
密集维 - 时间 40
密集维 50
属性维 90
两遍动态成员 100

概括地说,在混合模式下,默认解析顺序规定存储成员在动态计算成员之前计算,稀疏维在密集维之前计算,并遵循成员在大纲中的显示顺序(从上到下)。

对于没有指定解析顺序的动态成员(具有公式或没有公式),除非标记为两遍,否则它们将继承其维的解析顺序。在非混合模式下,可以将两遍计算设置应用于具有公式的成员,这些成员必须计算两次才能生成正确值。

两遍计算不适用于混合模式,标记为两遍计算的成员都在属性后面最后计算。在混合模式下,如果默认的解析顺序无法满足您的要求,应实施自定义解析顺序,而不是两遍计算。

混合模式下的默认解析顺序针对以下方案进行了优化:

  • 正向引用,即,动态成员公式引用大纲顺序中后面的成员。在混合模式下没有大纲顺序相关性。
  • 基于大纲顺序聚合子代值更接近于使用等效公式进行聚合。
  • 稀疏公式内作为相关项的动态密集成员。在混合模式下,如果稀疏公式引用密集动态成员,会忽略这种引用,因为先计算稀疏维。要对此进行更改,应为稀疏维分配高于密集维的解析顺序(在密集维之后计算稀疏维)。

如果需要使用非默认解析顺序,可以在混合模式下为成员设置自定义解析顺序。有关如何修改解析顺序的信息,请参阅“设置解析顺序(仅限混合模式)”。

如果实施自定义解析顺序,它将覆盖默认解析顺序。如果成员或维的解析顺序相同,它们在大纲中的显示顺序(从上到下)将解决这种冲突。

您可以更改此行为,方法是为稀疏维分配高于密集维的自定义解析顺序。

示例:

请考虑下面的示例,其中的成员具有不同解析顺序。

帐户(稀疏,默认解析顺序为 30)

  • A1

  • A2

  • 比率 – 成员公式 [A1/A2]

(从帐户继承了默认解析顺序 30)

数据源(稀疏,默认解析顺序为 10)

  • DataInput

  • CustomInput

  • 差异 – 成员公式 [DataInput - CustomInput]

(从数据源继承了默认解析顺序 10)

请考虑下面的数据集,该数据集表示一月期间的交叉点:

交叉点的一月数据集

比率和差异具有不同解析顺序时的计算

情况 1:比率的解析顺序大于差异的解析顺序

在这种情况下,首先计算差异,然后计算相应的比率。

情况 1:先计算差异,然后计算相应的比率

差异的比率将按照 (差异->A1)/(差异->A2) 计算。

情况 1:计算差异的比率

情况 2:比率的解析顺序小于差异的解析顺序

在这种情况下,首先计算比率,然后计算相应的差异。

情况 2:先计算比率,然后计算相应的差异

比率差异将按照 (比率->DataInput) – (比率->CustomInput) 计算。

情况 2:计算比率差异