#MISSING値

ブロック・ストレージ・ディメンション・メンバーの組合せに対してデータ値が存在しない場合、Essbaseによって、組合せに#MISSINGの値が指定されます。#MISSING値はゼロ(0)の値とは異なります。デフォルトでは、#MISSINGデータは、設定を有効にしないかぎり集計されません。#MISSINGブロックを削除すると、パフォーマンスを向上できます。

#MISSINGの集計

Essbaseでの#MISSING値の計算方法を次に示します。この表では、Xは任意の数を表します。

表35-5 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

#MISSING % X

X % 0

#MISSING

#MISSING

#MISSING

X == #MISSING

Xが#MISSINGでないかぎりFALSE

X != #MISSING

X < > #MISSING

Xが#MISSINGでないかぎりTRUE

Xが#MISSINGでないかぎりTRUE

X <= #MISSING

(X <= 0)

X >= #MISSING

(X >= 0)または(X == #MISSING)

X > #MISSING

(X > 0)

X < #MISSING

(X < 0)

X AND #MISSING:

Y AND #MISSING (Yはゼロ以外の値を表します)

0 AND #MISSING

#MISSING AND #MISSING

#MISSING

0

#MISSING

X OR #MISSING:

Y OR #MISSING (Yはゼロ以外の値を表します)

0 OR #MISSING

#MISSING OR #MISSING

Y

#MISSING

#MISSING

IF (#MISSING)

IF (0)

f (#MISSING)

Essbase関数が1つの変数で構成される場合は、#MISSING

f (X)

Xがfのドメインではなく、Essbase関数が(明記されている場合を除いて)複数の変数で構成される場合は、#MISSING

デフォルトでは、#MISSING値はEssbaseによってロールアップされません。ただし、常にレベル0でデータをロードし、親レベルでロードしない場合は、#MISSING値の集計の設定を有効にする必要があります。この設定により、計算パフォーマンスが1%–30%改善されます。パフォーマンスの改善は、キューブのサイズと構成によって変動します。

注意:

子メンバーのいずれかの組合せに#MISSING値がある場合に、データを子レベルではなく親レベルでロードする場合は、デフォルト(#MISSING値を集計しない)を有効にする必要があります。すべての子メンバーの組合せに、その他の値(ゼロ(0)を含む)がある場合は、Essbaseによって子の値がロールアップされて親の値が正確に上書きされるため、デフォルトを安全に変更できます。

#MISSING値を集計するには、次のいずれかの方法を使用します。実現できるパフォーマンスの改善の度合いは、データベースの上位レベル・ブロックと入力ブロックとの比率によって変動します。

#MISSING値の集計方法を変更するには、次のいずれかの方法を使用します。

キューブ・プロパティで#MISSING値の集計を有効にすると、データ・ブロック内のセルの計算順序が変更されます。

#MISSING値の集計の設定が無効になると、次の状況で、パフォーマンスのオーバーヘッドが特に高くなることに注意してください。

  • 入力データ・ブロックに対する計算済データ・ブロックの比率が低い場合

  • 疎ディメンションの親レベルで多くのデータ値をロードする場合

これらの状況では、パフォーマンスのオーバーヘッドは10%–30%です。計算パフォーマンスが重要である場合は、データベース構成またはデータのロード方法を再検討することをお薦めします。

#MISSINGブロックの削除

CLEARDATAコマンドを使用して、ブロック内のセルの値を#MISSINGに変更できます。データ・ブロックは削除されません。これらの余分なブロックにより、取得と計算のパフォーマンスが低下する場合があります。

#MISSINGブロックによってパフォーマンスが低下している場合は、次のいずれかのアクションを実行します。

  • CLEARBLOCKコマンドを使用してデータ・ブロックを削除します。

  • データをエクスポートしてから、再度インポートします。

データ値がすでにロードされている場合は、空のブロックを削除するとパフォーマンスが向上します。ただし、新しい値によりそのブロックの作成が必要になる場合は、データ・ロード・プロセス時間が長くなります。