模拟计算以估计计算时间

您可以模拟 Essbase 块存储多维数据集的模型上的计算,以估计实际计算需要多长时间。要执行此操作,请运行仅使用 SET MSG 和 SET NOTICE HIGH 的计算脚本,记下完成时间并进行推断。

只能在计算脚本中使用 SET MSG 模拟计算。模拟计算生成的结果可帮助您分析基于相同数据和大纲的实际计算的性能。

通过使用 SET NOTICE HIGH 等命令运行模拟计算,可以标记每个稀疏维完成所需的相对时间量。然后,通过对一个或多个维执行实际计算,可以估计整个计算将花费多长时间,因为模拟计算运行所用的时间与实际计算运行所用的时间成比例。

例如,如果计算从上午 9:50:00 开始,第一个通知的时间戳为上午 9:50:10,第二个通知的时间戳为上午 9:50:20,则您知道计算的每个部分花费了 10 秒。如果仅对第一部分运行实际计算,并注意到运行需要 30 秒,则您知道另一部分也需要 30 秒。如果总共有两条消息,则您会知道实际计算大约需要 60 秒(20/10 * 30 = 60 秒)。

使用以下主题可了解如何执行模拟计算以及如何使用模拟计算来估计计算时间。

模拟计算

通过使用命令 SET MSG ONLY 和 SET NOTICE HIGH 运行计算脚本,并记下应用程序日志中的时间戳,模拟 Essbase 块存储多维数据集的模型的计算。

在估计计算时间之前,必须对基于实际多维数据集的数据模型执行模拟计算。然后,您可以查看应用程序日志以查看计算用时。

要了解从何处查找应用程序日志,请参阅 Essbase 平台中的环境位置

要执行模拟计算,请执行以下操作:

  1. 创建一个数据模型,该模型使用所需信息的所有维和所有级别的详细信息。
  2. 装入所有数据。此过程仅计算在多维数据集加载的数据。
  3. 创建包含以下条目的计算脚本:
    SET MSG ONLY;
    SET NOTICE HIGH;
    CALC ALL;

    如果要对密集维使用动态计算,请用需要计算的特定维(例如 CALC DIM EAST)替换 CALC ALL 命令。

    注意:

    如果您尝试验证脚本,则 Essbase 会报告错误。忽略错误。

  4. 运行脚本。
  5. 在应用程序日志中查找第一个稀疏计算消息,并记下消息中的时间。
  6. 记录每条后续消息的时间。
  7. 计算未动态计算的模型的密集维:
    CALC DIM (DENSE_DIM1, DENSE_DIM2, …);
  8. 计算模型的稀疏维:
    CALC DIM (SPARSEDIM1, SPARSEDIM2, …);
  9. 预测将发生通知的间隔,然后对照稀疏计算结果进行验证。然后,您可以估计计算时间。

估计计算时间

记录模拟计算的结果,并用它们估计 Essbase 块存储多维数据集的实际计算时间。

要估计总计算时间,请执行以下操作:

  1. 请注意 SET NOTICE HIGH 生成的应用程序日志消息之间的所有间隔的时间。

    请参阅下表。

  2. 使用以下计算可估计实际计算的时间:

    模拟计算所需的总时间,除以第一个模拟计算通知间隔,再乘以第一个实时计算时间间隔。

    表 34-1 日志消息之间的间隔样例

    计算通知编号 模拟计算时间间隔(秒) 稀疏维计算间隔(秒)

    1

    7

    45

    2

    5

     

    3

    6

     

    4

    3

     

    5

    4

     

    6

    2

     

    7

    6

     

    8

    4

     

    9

    3

     

    10

    3

     

    总计算时间

    43

     

    在此示例中,43 / 7 * 45 = 276.4 秒,因此实际计算应花费 276.4 秒。

影响估计准确度的因素

基于 Essbase 块存储多维数据集模拟计算的估计准确性可能会受到块密度和大纲结构等因素的影响。

如果不存在导致变化的关键因素,模拟计算应返回精确到大约 5% 的时间。

当这些因素存在时,这种估算技术更密切地预测 Essbase 达到模拟计算的 30% 到 40%(SET NOTICE HIGH 生成的消息的 30% 到 40%)时的计算时间。

由于影响链而产生的变化

将 SET MSG ONLY 用作计算时间估计技术,应根据后来的 CALCNOTICE 间隔进行验证。这种估计技术的结果因以下影响链而异:

  1. 通过真正的整合过程,块在块密度上有所不同,因此

  2. 因此, Essbase 将块写入磁盘的速率不同

  3. 在高速缓存中处理块的速率不同,因此

  4. 实际结果可能与预测的计算时间不同。

由于大纲结构而产生的差异

能够使实际结果与预测结果显著不同的另一个因素是轮廓结构。基于 CALCNOTICE 间隔的计算假定整个大纲的处理时间均衡。可以扭曲此余额的因素包括以下情况:

  • 该模型包含与其它稀疏维相对较大的一个或两个稀疏维。

  • 较大的维具有导致多个共享汇总的成员配置。

根据结果更改大纲

Essbase 块存储多维数据集的模型进行模拟计算并进行分析后,您可以更改大纲以提高性能。

大纲中从上到下,对稀疏维进行排序,以在上方块中创建最少的百分比增加:

  • 完全模型加载后的 0 级块:100,000

  • 仅合并稀疏维 1 之后的上层块:1,000,000

  • 仅合并稀疏维 2 之后的上层块:3,000,000

  • 仅合并稀疏维 3 之后的上层块:10,000,000

  • 仅合并稀疏维 4 之后的上层块:300,000

  • 仅合并稀疏维 5 之后的上层块:5,700,000

例如:

  • #4(成员 = 10,000,4 个级别)

  • #1(成员 = 500,2 个级别)

  • #2(成员 = 100,4 个级别)

  • #5(成员 = 10,000,4 个级别)

  • #3(成员 = 20,平面)

使用模拟计算生成上块计数。这些数字可能是准确的,尽管实际尺寸大小如上所述项目旁边。

注意:

最大的成员数量并不总是很好的预测。

考虑使用混合模式。在混合模式多维数据集中,您可以轻松定制解决顺序,而不是重新排列维顺序。