機械翻訳について

動的に計算する値の選択

一部のデータ値を動的に計算すると、計算時間とディスク使用量が削減され、データベースの再構築時間が短縮されますが、動的に計算されるデータ値の取得時間が長くなります。

動的に計算するメンバーを決定する際には、次の項で説明するガイドラインを使用します。

密メンバーと動的計算

密ディメンションのメンバーに対して次の変更を行うことを検討してください:

  • 密ディメンションの上位レベル・メンバーを「動的計算」としてタグ付けします。

  • 密ディメンションのレベル0のメンバーを「動的計算」の単純な式でタグ付けし、取得時間の増加を評価します。

    単純な式では、コストの高い計算を実行するためにEssbaseは必要ありません。 財務関数またはディメンション間演算子(->)を含む式は複雑な式です。

疎メンバーと動的計算

疎ディメンションのメンバーに対して次の変更を行うことを検討してください:

  • 6つ以下の子を持つ疎ディメンションの一部の上位レベル・メンバーを「動的計算」としてタグ付けします。

  • 疎ディメンション・メンバーに複雑な式を「動的計算」としてタグ付けします。

    複雑な式では、Essbaseでコストの高い計算を実行する必要があります。 たとえば、財務関数を含む式はすべて複雑な式です。 「複雑な算式の使用」を参照

  • 頻繁に「動的計算」として再構築するディメンションの上位レベル・メンバーにタグ付けします。

  • 20個以上の子孫を持つ上位レベルの疎ディメンション・メンバーを「動的計算」としてタグ付けしないでください。

2パス・メンバーと動的計算

バッチ計算の実行に必要な時間を短縮するには、2パス・メンバーを「動的計算」としてタグ付けします。 勘定科目ディメンションにない場合でも、任意の「動的計算」メンバーを2パスとしてタグ付けできます。 「2パス計算の使用」を参照してください。

2パス・メンバーおよび属性メンバーとしてタグ付けされたメンバーの相互作用の詳細は、「属性ディメンションと標準ディメンションの比較」を参照してください。

密ディメンションの2パス・メンバーに対する問合せが動的計算機キャッシュに与える影響の詳細は、「2パス・メンバーと動的計算」を参照してください。

親子関係と動的計算

親メンバーに子メンバーがあり、その子に「動的計算」のタグを付ける場合は、親に「動的計算」のタグも付ける必要があります。

ただし、親メンバーに子メンバーがあり、親が「動的計算」メンバーである場合、子を「動的計算」としてタグ付けする必要はありません。

計算スクリプトと動的計算

Essbaseは、計算スクリプトでCALC ALL文またはCALC DIM文を計算する際、「動的計算」メンバーの計算をバイパスします。

同様に、計算するメンバーのリストを指定するためにメンバー・セット関数(@CHILDRENや@SIBLINGSなど)が使用されている場合、Essbaseは結果リスト内の「動的計算」メンバーの計算をバイパスします。

計算スクリプトで「動的計算」メンバーを明示的に指定すると、計算スクリプトは失敗します。 「動的計算」メンバーの計算スクリプト計算は実行できません。 計算スクリプトを使用してメンバーを明示的に計算するには、メンバーを「動的計算」としてタグ付けしないでください。

たとえば、次の計算スクリプトは、Qtr1が「動的計算」メンバーでない場合にのみ有効です:

FIX (East, Colas)
   Qtr1;
ENDFIX

式および動的に計算されるメンバー

式をデータベース・アウトラインに適用するときに、動的に計算されたメンバーを式に含めることができます。 たとえば、Qtr1が「動的計算」メンバーの場合、データベース・アウトラインのQtr1に次の式を配置できます:

Qtr1 = Jan + Feb;

動的に計算されたメンバーを計算スクリプトの式計算のターゲットにすることはできません。Essbaseは、動的に計算された値のメモリーを予約しないため、値を割り当てることはできません。 たとえば、Qtr1が「動的計算」メンバーの場合、計算スクリプトに次の式を含めると、Essbaseに構文エラーが表示されます:

Qtr1 = Jan + Feb;

Qtr1が「動的計算」メンバーで、Yearが「動的計算」メンバーでない場合は、計算スクリプトで次の式を使用できます:

Year = Qtr1 + Qtr2;

この式は、Essbaseが動的に計算されたメンバーに値を割り当てないため有効です。

ノート:

データベース・アウトラインまたは計算スクリプトの式で動的に計算されたメンバーを参照すると、Essbaseは動的計算を実行するために通常の計算を中断します。 この中断により、計算のパフォーマンスが大幅に低下する可能性があります。

スクリプトおよび動的に計算されるメンバー

計算スクリプトの前処理フェーズでは、アウトラインに密な「動的計算」メンバーが含まれているかどうかを判断できません。 スクリプトにランタイム依存の式が含まれている場合、Essbaseでは、スクリプトの実行時にすべての密「動的計算」メンバーを計算する必要があります。 SET FRMLRTDYNAMIC OFF計算コマンドを使用すると、これらの「動的計算」メンバーの計算が停止され、パフォーマンスが向上します。

動的に計算される子

メンバーの計算が「動的計算」の子メンバーの計算に依存している場合、Essbaseでは、親を計算するために、バッチ・データベースの計算時に最初に子メンバーを計算する必要があります。 したがって、通常の計算時間は短縮されません。 この要件は、疎ディメンションのメンバーおよび密ディメンションのメンバーに適用されます。

たとえば、次の図では、Qtr1が「動的計算」メンバーです。 その子であるJan、FebおよびMarは動的メンバーではありません。 その親である年は動的メンバーではありません。 バッチ・データベースの計算中にEssbaseが年を計算する場合、Qtr1を含む子の値を集計する必要があります。 したがって、Qtr1は「動的計算」メンバーですが、Qtr1の計算にはさらに時間がかかります。

図22-2 Sample.Basicアウトライン、「動的計算」メンバーとしてのQtr1の表示


この図は、Qrt1が動的計算メンバーであるアウトラインを示しています。