使用维时,务必了解不同的数据存储选项以及如何在业务流程中使用它们。
存储选项
表 11-1 存储选项
选项 | 影响 |
---|---|
动态计算和存储 |
计算成员的数据值并存储值。 |
存储 |
存储成员的数据值。 |
动态计算 |
计算成员的数据值并忽略值。 |
从不共享 |
禁止同一维中的成员共享数据值。 |
共享 |
允许同一维中的成员共享数据值。 |
仅标签 |
没有与成员关联的数据。 |
关于动态计算
对于动态计算成员,应用程序计算成员的数据值并将其忽略。Oracle 建议的最佳做法是,一个动态计算父代下面最多 100 个子代。将成员的存储更改为动态计算可能会导致数据丢失,这将取决于数据的最初来源。可能需要更新大纲、计算或同时更新大纲并计算以获得动态计算值。
动态计算与动态计算和存储
大多数情况下,当计算稀疏维的成员时,可通过使用动态计算而非动态计算和存储来优化计算并降低磁盘使用。对带复杂公式或用户频繁检索的稀疏维成员使用动态计算和存储。
对密集维的成员使用动态计算。动态计算和存储仅可使检索时间和常规计算时间略有减少,并不能显著降低磁盘的使用。对众多用户同时访问的数据值使用动态计算。检索时间可能显著低于动态计算和存储。
注:
对于用户输入数据的基本级成员,请勿使用动态计算。
对于父代成员,如果输入的数据是目标版本,则不要使用动态计算。设置为动态计算的父代成员在目标版本中为只读。
因为动态计算成员的数据值不会被保存。
关于存储数据存储
如果子代设置为动态计算,则不要将父代成员设置为存储。使用这一合并,当用户保存并刷新表单时,不计算父代的新总数。
关于共享的数据存储
使用共享,允许在应用程序中有备用汇总结构。
关于从不共享数据存储
当添加用户定义的自定义维时,默认的数据存储类型为从不共享。可以对仅含一个聚合至父代的子代成员的父代成员使用从不共享,以便应用对子代成员的访问。
关于仅标签数据存储
仅标签成员是虚拟成员,通常用于导航且没有相关联的数据。
注:
不能将 0 级成员分配为仅标签。
仅标签成员可以显示值。
将维成员设置成仅标签成员可以减小块大小,从而使占用的数据库空间最小化。
不能向仅标签成员分配属性。
在多货币应用程序中,不能对以下维的成员应用仅标签存储:实体、版本、货币和用户自定义维。要存储兑换率,请使用从不共享。
默认情况下,仅标签父代的子代的数据存储将设置为从不共享。
注意:
由于不能将数据保存在第一个子代成员中,因此在设计表单时,请勿将仅标签父代放在其第一个子代成员之后。而是,创建表单时先选择仅标签父代,然后再选择其子代,或者不要为表单选择仅标签父代。