21 データ値の動的計算
ブロック・ストレージの計算のパフォーマンスを高めるには、Essbaseキューブでの選択値に「動的計算」を適用します。「動的計算」では、取得時に一部のメンバーを計算することで、効率が高まります。
キューブを計算する方法を設計するときに、データベースのバッチ計算の間にメンバーの組合せを事前計算するのではなく、データの取得時にメンバーの組合せをいくつか計算するほうが効率的であるとわかることがあります。
データベースの一部の値を動的に計算すると、データベースの全体的な計算パフォーマンスを大幅に向上できます。
一部のデータ値を動的に計算することで、次のようにリソース使用量が削減されます:
-
計算するメンバーの組合せが少ないため、データベースのバッチ計算時間が短縮されます。
-
ディスク使用量が減少します。保管する必要のある計算値が少なくなると、データベースおよび索引のサイズが小さくなります。
-
再構築時間が短縮されます。密ディメンションの動的計算メンバーを追加または削除しても、データ・ブロック・サイズは変更されません。そのため、再構築は必要ありません。
-
データベースのバックアップに必要な時間が短縮されます。データベース・サイズが小さいため、バックアップの実行にかかる時間が短縮されます。
メンバーが動的計算としてタグ付けされている場合、Essbaseはバッチ計算中(CALC ALL中など)にその値を計算しません。かわりに、問合せ時にデータ値が計算されます(たとえば、ユーザーがSmart Viewからデータを取得する場合)。動的に計算された値は保管されませんが、取得ごとに再計算されます。
動的計算の子メンバーから計算される親の値を取得する場合、Essbaseは、親の値を計算する前に子メンバーの組合せを動的に計算する必要があります。
Essbaseで動的に計算されるデータ値は、取得に時間がかかる可能性があります。動的に計算されるメンバーの取得時間を推測できます。
ノート:
標準ディメンションの場合、「動的計算」プロパティは集約ストレージ(ASO)データベースには適用されません。ASOでは、すべての親メンバーおよび式を含むすべてのメンバーが動的に計算されます。