BSOキューブを最適化すると、データベースのサイズが小さくなります。次のプロセスが含まれます:
「なし」を使用します。明示的なキューブ再構築の実行
Planningでは、明示的なキューブ再構築を手動またはジョブを介して実行できます。また、restructureCube EPM自動化コマンドまたはキューブの再構築REST APIを使用してキューブを再構築することもできます。
Note:
Calculation Managerを使用してキューブを再構築するには:
キューブ内のデータの分析
まず、Essbaseブロック分析レポートを生成します。次の情報ソースを参照してください。
Note:
Essbaseブロック分析レポートを生成するためのソースとして使用されるエクスポート・ファイルにキューブ・データをエクスポートすると、キューブは読取り専用モードに設定されます。キューブのサイズに応じて、エクスポートには時間がかかる場合があります。そのため、この分析を実行するには、インスタンスをテスト・インスタンスにクローニングすることをお薦めします。Essbaseブロック分析レポートは、次の3つの領域に関する情報を提供します:
ゼロ付近の値のみを含むセルのパーセンテージ。ブロック内のゼロ付近の値(0.000000001604など)を含むセルの割合を示します。
BSOキューブのゼロ付近の値のゼロへの変換
BSOキューブ内の疎ディメンションのゼロ付近の値または非常に小さい値を削除するには、@roundまたは@truncate関数を使用し、それらの値をゼロに変換します。その後、#missingブロックに置き換えることで、これらのゼロ値を削除できます。BSOキューブのゼロの削除を参照してください。
ゼロ付近の値をゼロに変換するには:
このルールを最適化するために、ビジネス・ルール環境を構成します。このルールは現在、レベル0で実行されるように設定されています。ゼロ付近の値がゼロに変換され、キューブからクリアされた後(次の項を参照)、SET AGGMISSGが有効になっている場合、次回の集計時に上位レベルのメンバーからもこれらの値がクリアされます。
SET UPDATECALC OFF;
SET CREATENONMISSINGBLK OFF;
SET CREATEBLOCKONEQ OFF;
FIXPARALLEL(NumberThreads, @RELATIVE("SparseDim",0))
FIX on all level 0 sparse dimension @RELATIVE(SparseDim,0)
Note:
UPDATECALC、CREATENONMISSINGBLKおよびCREATEBLOCKONEQは、デフォルトでは無効になっていますが、ビジネス・ルールで明示的にオフにすることをお薦めします。SparseDimは、ゼロ・ブロックが置換される疎ディメンションの名前に必ず置換してください。FIXPARALLELを使用してパフォーマンスを向上させます(例: FIXPARALLEL(4, @RELATIVE("Scenario",0)))。ENDFIXPARALLELを必ず指定してください。計算設計1 (密または疎の計算)
この計算では、ゼロ付近の値がゼロに変更されます。
"DenseMbr" = @round("DenseMbr",<Insert Decimal Place>);
"SparseMbr" = @round("SparseMbr ",<Insert Decimal Place>);
計算設計2 (ブロック・モードの密メンバーのみ)
"DenseBlockHeader" (
@CALCMODE(BLOCK);
"DenseMbr" =@round("DenseMbr",<Insert Decimal Place>);
)
Note:
DenseMbr、SparseMbr、およびDenseBlockHeaderを実際の名前に置き換えます。
このルールを実行した後に、結果として生じるゼロを削除します。手順は、BSOキューブのゼロの削除を参照してください。
BSOキューブのゼロの削除
キューブ内の疎ディメンションのゼロ・ブロックを#missingブロックに置換して削除することから始めます。
ゼロ・ブロックを#missingブロックに置換するには:
このビジネス・ルールを最適化するためのビジネス・ルール環境を設定します:
SET UPDATECALC OFF;
SET CREATENONMISSINGBLK OFF;
SET CREATEBLOCKONEQ OFF;
FIXPARALLEL(NumberThreads, @RELATIVE("SparseDim",0))
FIX on all level 0 sparse dimension @RELATIVE(SparseDim,0)
Note:
UPDATECALC、CREATENONMISSINGBLKおよびCREATEBLOCKONEQはデフォルトで無効になっていますが、ビジネス・ルールで明示的にオフにすることをお薦めします。SparseDimは、ゼロ・ブロックが置換される疎ディメンションの名前に必ず置換してください。FIXPARALLELを使用してパフォーマンスを向上させます(例: FIXPARALLEL(4, @RELATIVE("Scenario",0)))。ENDFIXPARALLELを必ず指定してください。計算設計1 (密または疎の計算)
この計算の結果は元の値になり、ゼロ値が#missingに変更されます。
"DenseMbr" = "DenseMbr" * "DenseMbr" / "DenseMbr"; "SparseMbr" = "SparseMbr" * "SparseMbr" / "SparseMbr";
計算設計2 (ブロック・モードの密メンバーのみ)
"DenseBlockHeader" (
@CALCMODE(BLOCK);
IF ("DenseMbr" == 0)
"DenseMbr" = #Missing;
ENDIF
Note:
DenseMbrとSparseMbr、およびDenseBlockHeaderを実際の名前に置換します。データ型がスマート・リスト、日付、テキストおよびパーセンテージのメンバーの集計演算子として「なし」を使用
データ型がスマート・リスト、日付、テキストおよびパーセンテージのディメンション・メンバーは、集計演算子として「なし」を使用する必要があります。「加算」集計演算子を使用すると、値を加算せずにキューブ・サイズが増加します。集計演算子として「無視」を使用すると、メンバーのディメンション内でのみ加算が停止します。他のディメンションからの値のロールアップが停止することはありません。これにより、不要なブロックが作成される可能性があります。