聚合存储多维数据集的压缩维
为 Essbase 聚合存储 (ASO) 多维数据集选择压缩维可能会显著影响性能。默认情况下,它是“Accounts(帐户)”维。理想的候选维是在优化数据压缩的同时保持检索性能。
更改压缩维将触发对立方的完全重构。压缩维必须是单个动态层次。如果该维具有不同的层次设置,例如多个层次,则会自动将其设置为单个动态层次。原始层次设置丢失(将其他维设置为压缩不会返回原始层次设置)。属性维不能成为压缩维,具有与属性关联的维也不能。
注意:
本主题中的信息适用于加载的数据库。请参阅将数据加载到聚合存储多维数据集。
维护检索性能
由于压缩维是动态计算的,因此在选择压缩维时,必须考虑动态计算维的设计注意事项。动态维在检索时计算,因此数据检索时间比存储的层次长。
如果将具有大量 0 级成员的维标记为压缩,则较高级别的查询需要更长时间,因为它们需要检索多个 0 级成员。如果用户对一个大维执行许多上层检索,则它不是压缩维的合适候选对象。
查看压缩估计统计信息
您可以在 Essbase Web 界面、 MaxL 或 REST API 中查看详细的压缩和查询统计信息。这些估计值可帮助您选择要用作压缩维的最佳维。对于每个维,您可以查看存储的 0 级成员数,这会影响检索性能;影响压缩的平均包填充和平均值长度;以及 0 级大小。
要查看统计信息,请选择以下方法之一:
-
Essbase Web 界面。示例:

-
query database MaxL 语句的聚合存储版本。示例:
query database ASOSamp.Basic list aggregate_storage compression_info; -
REST API 端点获取 ASO 压缩信息。
请参见以下每个压缩和查询相关统计信息的说明。
已存储的 0 级成员
如果将具有大量存储的 0 级成员的维标记为压缩,则该维的性能不会很好。与任何动态计算的维一样,从压缩维进行高级别检索通常较慢。
平均包填充
Compression is more effective if values are grouped together in consecutive members on dimensions or hierarchies rather than spread throughout the outline with lots of #MISSING data between values. Essbase 通过存储组的位置和内容的有关信息(而不是分别存储每个成员的这些信息),来节省内存。平均包填充量是存储在组中的值的平均数量。它可以在 1 和 16 之间变动,16 最好。选择具有较高平均包填充量的压缩维意味着数据库压缩得更好。
在某些大纲内,您可以通过对压缩维中的数字进行排序以改善压缩,以便将频繁填充的成员分组在一起。将填充的成员分组在一起时,每个包可以容纳更多的值,因而将增加平均包填充数并改善压缩。
平均值长度
平均值长度是单元格中存储的值所需的平均存储大小(以字节为单位)。它可以在 2 个字节和 8 个字节之间变动,2 个字节最好。如果不使用压缩,在单元格中存储一个值将需要 8 个字节。如果使用压缩,可能需要的字节更少,具体取决于值长度。例如,10.050001 即使在压缩时也需要 8 个字节来存储,但是 10.05 可能仅需要 2 个字节(压缩时需要 4 个字节来存储)。具有较小平均值长度的维会使数据库压缩得更好。
将数据值舍入到不超过小数点后两位可以减小平均值长度,从而改善压缩。
预期的级别 0 大小
此字段指示压缩数据库的估计大小。较小的预期 0 级大小表示选择此维应该能获得更好的压缩效果。