#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値の集計方法を変更するには、次のいずれかの方法を使用します。
-
Essbase Webインタフェースで、「欠落値の集約」キューブ・オプションを選択します。
詳細キューブ・プロパティの設定を参照してください。
-
計算スクリプトで、SET AGGMISSG計算コマンドを使用します。
-
MaxLのalter database enable aggregate_missing文を使用します。
キューブ・プロパティで#MISSING値の集計を有効にすると、データ・ブロック内のセルの計算順序が変更されます。
#MISSING値の集計の設定が無効になると、次の状況で、パフォーマンスのオーバーヘッドが特に高くなることに注意してください。
-
入力データ・ブロックに対する計算済データ・ブロックの比率が低い場合
-
疎ディメンションの親レベルで多くのデータ値をロードする場合
これらの状況では、パフォーマンスのオーバーヘッドは10%–30%です。計算パフォーマンスが重要である場合は、データベース構成またはデータのロード方法を再検討することをお薦めします。
#MISSINGブロックの削除
CLEARDATAコマンドを使用して、ブロック内のセルの値を#MISSINGに変更できます。データ・ブロックは削除されません。これらの余分なブロックにより、取得と計算のパフォーマンスが低下する場合があります。
#MISSINGブロックによってパフォーマンスが低下している場合は、次のいずれかのアクションを実行します。
-
CLEARBLOCKコマンドを使用してデータ・ブロックを削除します。
-
データをエクスポートしてから、再度インポートします。
データ値がすでにロードされている場合は、空のブロックを削除するとパフォーマンスが向上します。ただし、新しい値によりそのブロックの作成が必要になる場合は、データ・ロード・プロセス時間が長くなります。