Essbase 中的解析顺序确定在混合模式下执行动态计算的顺序。您可以定制解析顺序,也可以接受默认解析顺序,默认解析顺序已针对高性能和相关性分析进行了优化。
解析顺序的概念适用于动态计算执行,无论该计算是由动态成员公式还是计算脚本中的动态相关性启动。在多维查询中对某个单元格求值时,解析计算的顺序可能不明确,除非指定了解析顺序以指明所需的计算优先级。
您可以设置维或成员的解析顺序,也可以使用默认的 Essbase 解析顺序。您可以设置的最小解析顺序为 0,最大解析顺序为 127。解析顺序值越大,对相应成员的计算就越晚;例如,解析顺序为 1 的成员先解析,解析顺序为 2 的成员后解析。
启用混合模式后,默认解析顺序(也称为计算顺序)与块存储数据库的该顺序几乎一致:
维/成员类型 | 默认解析顺序值 |
---|---|
存储的成员 | 0 |
稀疏维成员 | 10 |
密集账户维成员 | 30 |
密集时间维成员 | 40 |
密集常规维成员 | 50 |
属性维成员 | 90 |
两遍动态成员 | 100 |
MDX 计算成员或命名集(已在 MDX WITH 中定义) | 120 |
总之,混合模式下的默认解析顺序规定,先计算存储的成员,再计算动态计算成员;先计算稀疏成员,再计算密集成员;各自按照大纲中的显示顺序(从上到下)进行计算。
没有为其指定解析顺序的动态成员(带或不带公式)继承其维的解析顺序,除非它们被标记为两遍。
两遍计算是块存储模式下可以应用的一项设置,适用于带有必须计算两遍才能生成正确值的公式的成员。
注:
请勿对混合模式多维数据集使用两遍计算。请仅使用解析顺序。
两遍计算在混合模式下不适用,标记为两遍的所有成员将在属性之后最后才计算。在混合模式下,如果默认解析顺序不符合需求,应实施定制解析顺序,而非两遍计算。
混合模式下的默认解析顺序针对以下方案进行了优化:
向前引用,其中的动态成员公式引用了按大纲顺序稍后才会出现的成员。混合模式下没有大纲顺序相关性。
基于大纲顺序对子值聚合更接近使用等效公式进行聚合。
动态密集成员是稀疏公式内的相关项。在混合模式下,如果稀疏公式引用了密集动态成员,该引用将会被忽略,因为系统会先计算稀疏维。要更改这种情况,请给稀疏维分配一个比密集维的解析顺序更高(更晚计算)的解析顺序值。
定制解析顺序
如果您需要调整混合模式下动态计算的行为,可以通过定制维和成员的解析顺序来实现此目标,并且无需对大纲进行重大更改。
如果实施定制解析顺序,它将覆盖默认解析顺序。如果成员或维具有相同的解析顺序,则采用它们出现在大纲中的顺序(从上到下)来解决冲突。
除非为特定成员定制解析顺序,否则顶级维成员的解析顺序应用于维中的所有动态成员。
要更改解析顺序,可在 Essbase Web 界面中使用大纲编辑器,或者使用 Smart View(请参见 "Changing the Solve Order of a Selected POV")。
您可以设置的最小解析顺序为 0,最大解析顺序为 127。解析顺序值越高意味着计算相应成员的时间越晚。
要探索解析顺序的用例,请参见应用程序工作薄库的 "Technical" 部分中的解析顺序模板。该库位于 Essbase 中的文件目录。
有关非混合模式下解析顺序的说明
在聚合存储多维数据集中:
所有维的解析顺序都设置为 0。
聚合以大纲顺序执行,以下情况除外:
在非混合块存储多维数据集中,默认解析顺序如下
先稀疏,后密集
先账户,后时间
属性排在最后
注:
如果手动将账户成员的解析顺序设置为高于时间成员的解析顺序,则将在动态时间序列成员之后对账户成员求值。