为计算性能而设计
要优化 Essbase 块存储多维数据集的计算性能,请考虑数据块大小和密度的影响、公式和计算脚本的效率以及可以调整大纲特征的方式(例如稀疏维的顺序、级别的使用和时间维)。
可以配置数据库以优化计算性能。
站点的最佳配置取决于数据库的性质和大小。仅将以下主题中的信息用作准则。
块大小和块密度
要使 Essbase 块存储多维数据集具有最佳计算性能,请了解数据块大小和块密度如何影响性能和存储。使用 Essbase Web 界面或 MaxL 查看块统计信息。
在大多数情况下,8 Kb 到 100 Kb 的数据块大小可提供最佳性能。
如果数据块小于 8 KB,则索引通常非常大,迫使 Essbase 写入磁盘并从磁盘检索索引。此处理会减慢计算速度。
如果数据块大于 100 KB,则智能计算无法有效工作。请参阅块存储多维数据集的智能计算。
要优化计算性能和数据存储,您可能需要通过重新安排数据库的密集维和稀疏维配置来平衡数据块密性和数据块大小。请记住以下建议:
-
将数据块大小保持在 8 KB 到 100 KB 之间,并尽可能提高块密度。
-
对包含代表数据的多维数据集的最有前途配置运行测试计算。检查结果以确定可产生最佳计算性能的配置。
-
考虑使用混合模式。在混合模式多维数据集中,您可以轻松定制解决顺序,而不是重新排列维顺序。
使用 Essbase Web 界面或 MaxL 查看有关多维数据集的信息,包括数据块的潜在数量和实际数量以及数据块大小。

使用 MaxL 查看块统计信息的等效语句是:
query database appname.dbname get dbstats data_block;稀疏维的顺序
在 Essbase 块存储多维数据集中,可以通过先按大纲顺序放置较小的稀疏维来提高计算性能。
或者,考虑使用混合模式。在混合模式多维数据集中,您可以轻松定制解决顺序,而不是重新排列维顺序。
您可以通过更改大纲中标准(非属性)稀疏维的顺序来提高计算性能。按标准稀疏维所包含的成员数对标准稀疏维进行排序,将包含最少成员的维放在首位。此安排可以改进:
-
对于具有较大维的大纲(例如,包含 1000 个成员的大纲),计算器高速缓存的功能可以提高约 10% 的性能。
-
如果启用并行计算,则如果成员最多的标准稀疏维是大纲中的最后一个标准稀疏维,则更有可能使用并行计算。
增量加载的多维数据集
对于增量(定期)加载数据的 Essbase 块存储多维数据集,可以通过在大纲中稀疏时间维来提高计算性能。
许多公司以增量方式加载数据。例如,公司可能每月为该月加载数据。
要在增量加载数据时优化计算性能,请将维标记为时间稀疏维。如果时间维是稀疏的,则数据库包含每个时间段的数据块。按时段加载数据时, Essbase 访问的数据块较少,因为包含相关时段的块较少。因此,如果启用了智能计算,则仅重新计算标记为脏的数据块。例如,如果加载 3 月的数据,则仅更新 3 月的数据块和 3 月的受抚养人父母。
但是,使时间维在自然密集时稀疏可能会显着增加索引的大小,由于更多的物理 I/O 活动来容纳大型索引,因此可能会降低性能。
如果标记为时间的维是密集维,则在为稀疏维执行部分数据加载时,您仍然可以从智能计算中获得一些好处。例如,如果“产品”稀疏并且您为一种产品加载数据,则 Essbase 仅重新计算受部分加载影响的块,尽管时间密集且启用了智能计算。
具有多个平面维的大纲
对于在平面维中具有数千个成员的 Essbase 块存储多维数据集,可以通过在大纲中添加级别来提高计算性能。
如果立方大纲具有多个平面维,则计算性能可能会受到影响。平的维度很少有父代,每个父代都有成千上万个子代;换句话说,平的维度有很多成员,级别很少。
通过将中间级别添加到大纲中,可以提高具有多个平面维的大纲的性能。
公式和计算脚本
要优化块存储多维数据集的计算脚本和公式,请采取措施减少 Essbase 通过数据块进行的周期数。
通过在计算脚本中仔细分组公式和维,可以显著提高计算性能。通过这种方式,可以确保 Essbase 在计算期间尽可能少地循环处理多维数据集中的数据块。
对计算脚本中的命令进行排序,使数据库计算尽可能简单。考虑将所有公式应用于大纲并使用默认计算 (CALC ALL)。
请参阅为块存储多维数据集开发计算脚本和计算通过。