#MISSING 值
如果块存储维成员组合没有数据值,则 Essbase 会为组合提供 #MISSING 值。#MISSING 值与零 (0) 值不同。默认情况下,除非您启用设置,否则不会合并 #MISSING 数据。您可以删除 #MISSING 块以提高性能。
#MISSING 合并
下面显示了 Essbase 如何计算 #MISSING 值。在此表中,X 表示任意数字:
表 34-8 Essbase 如何处理 #MISSING 值
| 计算/运算 | 结果 |
|---|---|
|
X + #MISSING |
X |
|
X - #MISSING #MISSING – X |
X -X |
|
X * #MISSING |
#MISSING |
|
X/#MISSING #MISSING / X X / 0 |
#MISSING #MISSING #MISSING |
|
X % #MISSING 缺少 % X X % 0 |
#MISSING #MISSING #MISSING |
|
X == #MISSING |
FALSE,除非 X 是 #MISSING |
|
X != #MISSING X < > #MISSING |
正确,除非 X 是 #MISSING 正确,除非 X 是 #MISSING |
|
X <= #MISSING |
(X <= 0) |
|
X >= #MISSING |
(X >= 0) 或 (X == #MISSING) |
|
X > #MISSING |
(X > 0) |
|
X < #MISSING |
(X < 0) |
|
X 和 #MISSING: Y AND #MISSING,其中 Y 表示任何非零值 0 和 #MISSING #MISSING 和 #MISSING |
#MISSING 0 #MISSING |
|
X 或 #MISSING: Y 或 #MISSING,其中 Y 表示任何非零值 0 或 #MISSING #MISSING 或 #MISSING |
是 #MISSING #MISSING |
|
IF (#MISSING) |
IF (0) |
|
f (#MISSING) |
#MISSING for any Essbase 函数 of one variable |
|
f (X) |
#MISSING 用于不在 f 域中的任何 X 以及多个变量的任何 Essbase Essbase 函数(除非特别注明) |
默认情况下, Essbase 不会累计 #MISSING 值。但是,如果始终在级别 0 加载数据,而从未在父级别加载数据,则应启用用于合并 #MISSING 值的设置。此设置将计算性能提高 1%-30%。性能改进因多维数据集大小和配置而异。
注意:
如果任何子成员组合具有 #MISSING 值,则在父级(而不是子级)加载数据时,默认设置(不合并 #MISSING 值)必须有效。如果所有子成员组合都具有任何其他值(包括零 (0),则 Essbase 会累计子值并正确覆盖父值,以便可以安全地更改默认值。
要合并 #MISSING 值,请使用以下方法之一。性能提升的程度取决于数据库中的上层块和输入块之间的比率。
要更改 #MISSING 值的合并方式,可以使用以下方法之一:
-
在 Essbase Web 界面中选择“汇总缺少的值多维数据集”选项。
请参阅设置高级多维数据集属性。
-
在计算脚本中,使用 SET AGGMISSG 计算命令。
-
使用 alter database enable aggregate_missing MaxL 语句。
如果在多维数据集属性中启用 #MISSING 值的合并,则数据块中的单元格计算顺序将更改。
禁用用于合并 #MISSING 值的设置时,请注意,在以下情况下,性能开销特别高:
-
计算的数据块与输入数据块的比率较低时
-
在稀疏维的父级别加载多个数据值时
在这些情况下,性能开销为 10%-30%。如果计算性能至关重要,则可能需要重新考虑数据库配置或加载数据的方式。
删除 #MISSING 块
可以使用 CLEARDATA 命令将块中单元的值更改为 #MISSING。它不会删除数据块。这些额外的块会降低检索和计算性能。
如果 #MISSING 块正在降低性能,请执行下列任一操作:
-
使用 CLEARBLOCK 命令删除数据块。
-
导出数据并重新导入。
删除空块可提高加载数据值的性能。但是,如果新值要求创建块,则数据加载处理时间会增加。