#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 值的合并方式,可以使用以下方法之一:

如果在多维数据集属性中启用 #MISSING 值的合并,则数据块中的单元格计算顺序将更改。

禁用用于合并 #MISSING 值的设置时,请注意,在以下情况下,性能开销特别高:

  • 计算的数据块与输入数据块的比率较低时

  • 在稀疏维的父级别加载多个数据值时

在这些情况下,性能开销为 10%-30%。如果计算性能至关重要,则可能需要重新考虑数据库配置或加载数据的方式。

删除 #MISSING 块

可以使用 CLEARDATA 命令将块中单元的值更改为 #MISSING。它不会删除数据块。这些额外的块会降低检索和计算性能。

如果 #MISSING 块正在降低性能,请执行下列任一操作:

  • 使用 CLEARBLOCK 命令删除数据块。

  • 导出数据并重新导入。

删除空块可提高加载数据值的性能。但是,如果新值要求创建块,则数据加载处理时间会增加。