尺寸顺序影响计算性能

确保在维度顺序上保持一致性将有助于提高模型的性能。这种一致性与模块和单个订单项有关。为什么订单很重要?Anaplan创建并使用索引来执行计算。尺寸相交的模块中的每个单元格都会给出一个索引号。

这是客户和产品尺寸的两个简单模块。在第一个模块中,产品是第一和客户第二,在第二个模块中,客户是第一,产品排在第二。

Dimensionorder_1.jpg

在此模型中,有一个第三个模块将收入计算为价格 *量。

Anaplan将索引分配给模块中的交叉点。这是两个模块的索引值。请注意,某些交叉点对模块的索引相同:客户1和产品1,Customer 2和Product 2,以及客户3和产品3,其余的单元格具有不同的索引编号。客户1和产品2在顶部模块中的值为4,底部模块中的值为2。

Dimensionorder_2.jpg

计算是收入=价格 *数量。

为了运行计算,Anaplan通过匹配两个模块的索引值来执行以下操作。

Dimensionorder_3.jpg

由于索引值不对齐,因此处理器在执行计算之前会扫描索引值以查找匹配。

当重新排序模块中的尺寸时,这些是索引值:

Dimensionorder_4.jpg

现在每个模块的索引值都对齐。由于相同维度结构的线条项目具有相同的布局,因此数据在内存中线性布置。计算过程以完全线性且可预测的方式访问内存。Anaplan的微处理器和内存子系统被优化,以识别这种访问模式并预先获取所需的数据。

Dimensionorder_5.jpg

模块之间的尺寸顺序如何不同?当您构建模块时,Anaplan使用将列表拖到创建模块对话框的顺序。该订单还取决于添加列表的位置。您添加到“页面”区域的列表是首先,然后将您添加到“行”区域的列表,最后是添加到“列”区域的列表。

Dimensionorder_6.jpg

重新排序列表并确保一致性很简单。按着这些次序:

  1. 在模块窗格(模型设置>模块)上,查找适用于列中不顺序的列表。单击要重新订购的行的应用程序,然后单击省略号。
    Dimensionorder_7.jpg
  2. 在“选择列表”对话框中,单击“确定”。
    Dimensionorder_8.jpg
  3. 在确认对话框中,单击“确定”。
    Dimensionorder_9.jpg
  4. 列表将按照它们出现在一般列表中的顺序。
    Dimensionorder_10.jpg
  5. 完成检查模块中的列表订单后,单击“行”选项卡并检查订单项。按照步骤1到3进行重新排序列表。

子集和订单项子集

关于子集和行项目子集的一个谨慎。在下面的示例中,我们在模块中添加了一个子集和一个订单项子集:

Dimensionorder_11.jpg

适用于如下:

Dimensionorder_12.jpg

单击省略号,将尺寸重新排序为:

Dimensionorder_13.jpg

首先列出了一般列表,然后是子集,然后是行项目子集。
您仍然可以通过在适用于列中双击并按照正确的顺序复制或键入尺寸来重新排序尺寸。

最小与最小?

这是正常的后续问题,不幸的是,答案是“取决于”。通过研究,我们发现这完全取决于模块中的数据。另外,如果使用子集,它可能会感到非常困惑。客户列表可能大于产品列表,但是如果使用的客户比例小于产品,那么什么?

另外,我们不提倡按大小顺序设置的常规列表中订购列表;这些列表应以层次顺序到底到最低为层,因此,根据定义,最大至最大的列表。所以我们的建议是持续的。考虑一下您如何描述问题。企业是否逐列产品或为客户谈论客户?同意公约,并坚持下去。

其他维度

计算性能仅与常见的源和目标之间的列表。一个或另一个单独的列表的顺序与计算速度无关。

本文中的内容尚未针对所有ANAPLAN实施进行评估,也可能不建议您针对您的具体情况进行评估。
在应用本文中的任何想法或步骤之前,请咨询您的内部管理员。
注释

很酷的帖子!表演调整的绝佳见解!

还有更多这样的事情要来 - 继续观看!

感谢您的简单,优雅,有力的解释。

我在这里有2个问题:

1.这里提到的是Anaplan记住添加列表的顺序。保存此序列是否有具体的原因 /优势?

2. Anaplan难道是否有可能根据一般列表中提供的顺序对其进行分类(而不是要求Modeller手动单击省略号并单击“确定”)?实际上,我观察到,当我单击Ellipsis并选择蓝图下的列表时,Anaplan本身会根据一般列表的顺序对列表进行分类。

@sheethal

这样的“订购”没有优势或不利条件,并且在内部就自动重新分类列表进行了讨论。我要说的是,订购的一致性实际上比首先更重要。我总是会主张以您思考或描述业务并保持一致的方式订购模块。这可能与您订购一般列表中的列表的方式有所不同,还值得指出的是,模块的任何视图(包括默认视图)不会受到应用设置中的订单的影响。如果这对您很重要,则值得在想法交换中添加请求

我希望有帮助

大卫

谢谢大卫!

谢谢大卫!在您的示例上跟进,如果一个维度(产品)比另一个维度大?我想我记得将它们放在较小到较大的顺序中(并按照您指示的范围保持整个模块的一致性),但不确定是否有所作为。

伟大的大卫。关注问题:请根据列表的索引和折叠方式进行属性处理。

谢谢。

@guillaume_arnau好问题,我们以前曾被问到过一个。

证据不像答案那样取决于模块中的DTAA的一致性那么结论。有时,较小到较大的速度更快,而其他时间更大,更小的速度更快。

然后,您开始在子集中获取Faxctor,并且变得更加复杂。如有疑问,值得尝试并查看是否存在明显区别

所以,实际上,订购的一致性比先出现的更为关键。我总是会主张以您思考或描述业务并保持一致的方式订购模块。这可能与您在“常规列表”中订购列表的方式有所不同

@dkolka列表属性实际上是订单项,因此没有差异。但是,除非必不可少,否则我们不主张使用它们。使用模块和行项目是最好的做法,而不是列表属性

非常有帮助和可操作 - 谢谢@davidsmith

非常强大和有用的技巧,请让他们来并更新计划:winking_face:

@davidsmith- 在“子集和行项目子集”部分中,您可以注意Anaplan将如何基于一般列表自动re序,然后是LIS集。

由于子集通常是在开发中的不同时间创建的,因此很难将它们保持在一般列表中的主要列表的订购方式。因此,例如,如果您有一个模块2个列表子集:

  1. 答:子集
  2. B:子集

但是,当单击应用中的省略号时,模型尺寸按以下顺序显示:

  1. 一个
  2. b
  3. B:子集
  4. 答:子集

因此,适用于自然地重新排序为:B:子集,A:子集

所以我的问题是:始终手动剪切/粘贴列表子集维度以使其顺序与相应的一般列表的顺序保持一致是最佳实践吗?这样做会产生积极的绩效影响吗?

谢谢!

@blake_gauer

简短的答案是肯定的。

在正确的相应顺序中拥有子集将带来性能优势。子集被视为计算的列表

我们主张尺寸订单的常规“整理”以进行仔细检查。这也是我避开子公司视图的原因 - 如果您没有任何意见,则很容易从模块蓝图进行整洁/检查,因为您不必检查单个订单项

希望有帮助

大卫

版本历史记录
最后更新:
04-15-202206:13 pm
更新者:
关于作者
贡献者
标签(1)