创建优化的混合模式多维数据集

基线、计算器高速缓存、解析顺序和数据分布优化多维数据集实用程序可帮助您优化多维数据集以提高性能。

使用以下四个优化多维数据集实用程序创建优化的混合模式多维数据集:
实用程序 返回的数据
基线 多维数据集性能度量
解析顺序 多维数据集中成员的解析顺序
计算器高速缓存 帮助您为多维数据集选择最佳计算器高速缓存值的数据
数据分布 帮助您选择使哪些维稀疏以及使哪些维密集的数据

优化混合模式多维数据集的基线度量

基线实用程序跟踪的度量显示系统的执行方式。使用这些度量可确定基线性能,然后衡量所做的后续优化的好处。

使用此实用程序前,首先创建应用程序工作簿,其中包括要包含在多维数据集中的大纲、配置设置、计算脚本和查询。

运行该实用程序时,它将构建多维数据集、加载所选数据文件、执行所选计算脚本,并运行应用程序工作簿中包含的查询。从用户那里获得具有代表性的查询示例,这一点很重要。

基线实用程序可创建应用程序和操作进程的面板,帮助您设计和优化多维数据集。当您实施更改并重建多维数据集时,基线将帮助您比较多维数据集修改的迭代。在应用程序工作簿的 Essbase.Stats.Baseline 选项卡中,基线实用程序会使用每个迭代的最新数据附加新表。

准备对混合模式多维数据集运行优化多维数据集基线实用程序

在运行基线实用程序前完成以下任务:

  1. 设计和创建应用程序工作簿。

    要创建应用程序工作簿,可以下载示例应用程序工作簿,然后根据需要进行修改。请参见浏览库模板

  2. 清除 Smart View 元数据应用工作簿中的查询工作表:
    1. 转到 Smart View 功能区。
    2. 选择工作表信息,然后单击删除

    如果查询工作表具有来自不同服务器的元数据,则多维数据集设计器将显示警告并暂停处理,直到您做出应对。

  3. 使用以下应用程序配置设置修改 Cube.Settings 工作表:
    设置
    ASODYNAMICAGGINBSO FULL
    HYBRIDBSOINCALCSCRIPT NONE
    INDEXCACHESIZE 100M
    DATACACHESIZE 100M
    ASODEFAULTCACHESIZE 100
    MAXFORMULACACHESIZE 102400
    INPLACEDATAWRITEMARGINPERCENT 20
    CALCCACHEDEFAULT 200000
    LONGQUERYTIMETHRESHOLD -1

混合模式多维数据集运行优化多维数据集基线实用程序

基线实用程序用于确定密集和稀疏维、数据大小(PAG 和 IND 文件大小)、块大小以及数据、索引和计算器高速缓存大小。此外,它还提供数据加载、计算和查询的度量。

要运行基线实用程序,请执行以下操作:

  1. 从多维数据集设计器功能区中,选择管理任务 > 优化多维数据集
  2. (可选)单击定制选择要运行的基线操作。
    • 构建多维数据集 — 构建应用程序工作簿中定义的多维数据集,并加载数据工作表中的数据。
    • 运行计算脚本 — 运行在应用程序工作簿中的每个计算工作表中定义的计算脚本。

      计算工作表按照其在应用程序工作簿中的显示顺序运行。优化多维数据集将忽略计算工作表中的执行计算属性。

      优化多维数据集仅支持可从“作业”运行的计算脚本。无法运行依赖于当前 Smart View 网格上下文(例如,使用 @GRIDTUPLES 函数定义的计算,或者使用通过 <svLaunch> 标记定义的运行时替代变量的计算)的计算脚本。

    • 运行查询 — 运行查询工作表中的查询。
    • 全部导出 — 将多维数据集中的所有数据导出到多维数据集目录。在记录导出时间和文件大小后,将自动删除导出文件。
  3. 单击创建基线

    如果应用程序工作簿中没有数据工作表,将提示您从目录中选择数据和规则文件。将数据和规则文件存储在目录的共享目录中是一种不错的做法,这样在重建多维数据集时文件就不会丢失。

    构建多维数据集需要一些时间。

    Essbase 将生成 Essbase.Stats.Baseline 工作表并将其添加到工作簿。

  4. 查看应用程序工作簿中的 Essbase.Stats.Baseline 工作表。
    • 工作表中的第一个表显示数据加载文件的大小、数据加载单元格数量、块大小和高速缓存大小。
      Essbase.Stats.Baseline 工作表中第一个表的图像,其中显示数据库度量。

    • 基线表中的颜色标识每个维的存储类型:
      • 绿色 — 密集维
      • 红色 — 至少具有一个动态公式的稀疏维
      • 蓝色 — 具有聚合但并非具有所有动态父代和公式的稀疏维
      • 金色 — 其他稀疏维

      Essbase.Stats.Baseline 工作表中第二个表的图像,其中显示密集维和稀疏维、成员总数和存储的成员数。

    • 加载和计算下,各个“脚本:”行标识哪个计算脚本需要最长时间才能完成,因此可能需要优化。
      Essbase.Stats.Baseline 工作表中第三个表的图像,其中显示加载和计算时间、块数、创建的数据和索引文件大小。

    • 查询读取的块数下,它显示查询请求的数据量。

      将动态维更改为存储的维将会减少该数量。

    • 查询公式下,它显示在查询中执行的公式的数量。

      检查计算成员的解析顺序,并进行更改以减少公式执行次数并提高性能,或者考虑存储包含公式的计算成员以减少公式执行次数并提高性能。


      Essbase.Stats.Baseline 工作表中第四个表的图像,其中显示查询时间、读取的块数和执行的公式数。

    • 工作表中最后一个表显示导出时间和文件大小。
      Essbase.Stats.Baseline 工作表中第五个表的图像,其中显示导出时间和文件大小。

优化混合模式多维数据集的解析顺序

解析顺序实用程序为您提供应用程序中使用的解析顺序流的直观表示。这可以帮助诊断与公式相关的查询性能问题。

要运行优化多维数据集解析顺序实用程序,请执行以下操作:

  1. 从多维数据集设计器功能区中,选择管理任务 > 优化多维数据集
  2. 单击解析顺序
  3. 查看应用程序工作簿的 Essbase.Stats.SolveOrder 工作表。

使用 Essbase.Stats.SolveOrder 工作表中的信息调整解析顺序,从而优化查询性能。请参见针对混合模式优化多维数据集混合模式下的解析顺序

优化混合模式多维数据集的计算器高速缓存

计算器高速缓存实用程序为多维数据集推荐最优计算器高速缓存设置。

在计算脚本中计算整个稀疏维时,使用正确的计算器高速缓存设置对于增强性能十分重要。计算整个稀疏维是一种减少查询所需块数量的方法。

计算器高速缓存的默认值为 200,000 字节。最大值为 20,000,000 字节。

计算器高速缓存应该设置为正好足以包含在计算脚本中计算的稀疏维。将计算器高速缓存设置为大于其所需值会对性能产生负面影响。

要使用计算器高速缓存实用程序优化计算器高速缓存,请执行以下操作:
  1. 为了减少查询请求的数据量,可使用计算脚本计算和存储一个或多个维。

    通常,最好选择最大的维。

  2. 移动该维,使其成为大纲中的第一个稀疏维。

    计算器高速缓存算法会从第一个稀疏维开始选择要放置在高速缓存中的稀疏维。

  3. 在不加载数据的情况下构建多维数据集。

    必须构建多维数据集,才能使计算器高速缓存实用程序发挥作用。

  4. 运行计算器高速缓存实用程序。

    实用程序将在每个维旁边显示不超过 20 MB 的正确高速缓存设置。如果超过 20 MB,将显示 "N/A"。通常,设置不需要多几 MB。

    1. 从多维数据集设计器功能区中,选择管理任务 > 优化多维数据集
    2. 单击计算器高速缓存
    3. 查看应用程序工作簿的 Essbase.Stats.CalcCache 工作表。您可以在 Essbase.Stats.CalcCache 工作表的计算器高速缓存列中查看建议的计算器高速缓存设置。
      优化多维数据集类型应用程序工作簿中 Essbase.Stats.CalcCache 工作表的图像。

  5. Essbase.Stats.CalcCache 工作表中(于步骤 1 中计算和存储的稀疏维旁边)查找计算器高速缓存设置。
  6. 如果在步骤 1 中计算了一个维,请将计算器高速缓存的默认值设置为该值。如果在步骤 1 中计算了多个维,则从计算的值中选择最高的计算器高速缓存值。

    将此值添加到 Cube.Settings 工作表的“应用程序设置”部分。或者,您可以在 Essbase Web 界面中的应用程序配置设置中设置该值。为了多留出一点空间,采用舍入是一种不错的做法。

优化混合模式多维数据集的数据分布

数据分布实用程序可帮助您更好地了解应用程序中的数据,从而使您能够就如何优化多维数据集做出重要决策。

了解数据有助于确定以下内容:
  • 使哪些维密集,以及使哪些维稀疏。

    密集维用于定义块存储应用程序中的块。理想情况下,块应该包含具有大部分数据的维,并表示该应用程序的主要查询布局。对于财务报告应用程序,这通常意味着时间和账户维应该是密集的。

  • 使用计算脚本计算和存储哪些维。

    影响查询性能的因素之一是查询请求的块数量。如果请求的块数量太多,则查询性能会受到影响。要减少请求的块数量,可预先计算一个或多个稀疏维的高级别成员。首先,将高级别成员的维存储属性设置为存储的属性(“存储”或“从不共享”),然后运行计算脚本以使用 CALC DIMAGG 聚合该维。

  • 在 FIXPARALLEL 命令中使用哪些维作为任务维。

    要优化用于聚合所存储稀疏维的计算脚本,可以使用 FIXPARALLEL 命令。选择正确的任务维非常重要。任务维用于确定如何将计算拆分为线程,并且并行执行。一个或多个稀疏维应该包含大部分数据,以减少空任务;理想情况下,这些数据应该均匀分布。

要运行数据分布实用程序,请执行以下操作:
  1. 从多维数据集设计器功能区中,选择管理任务 > 优化多维数据集
  2. 选择数据分布

    运行此过程可能需要很长时间,尤其是在较大模型上。

  3. 查看 Essbase.Stats.DataDist 工作表。

优化多维数据集工作簿中 Essbase.Stats.DataDist 选项卡的图像,其中显示数据分布统计信息。


优化多维数据集工作簿中 Essbase.Stats.DataDist 选项卡的图像,其中显示 "Blocks" 和 "Cells per Block"。