機械翻訳について

2パス計算の使用

アプリケーションに適している場合は、データベース・アウトラインで勘定科目ディメンション・メンバーを2パスとしてタグ付けすることで、パフォーマンスを大幅に向上させることができます。 データと計算のニーズの組合せによっては、精度を維持するために、2パス・タグ付けの代わりに計算スクリプトを使用して式を2回計算する必要がある場合があります。

これらのセクションを使用して、2パス計算の詳細を理解します。 パフォーマンスを向上させるために勘定科目ディメンション・メンバーを2パスとしてタグ付けできるかどうか、または式を2回計算するために計算スクリプトを使用する必要があるかどうかを決定します。 この項では、2パス計算を有効にする方法、または2パス計算用の計算スクリプトを作成する方法についても説明します。

2パス計算について

正しい値を生成するために2回計算する必要があるメンバー式では、2パス計算を使用できます。

可能な場合は常に、2パス式がデータ・ブロック・レベルで計算され、2パス式がメイン計算として同時に計算されます。 したがって、データベースを通過する追加の計算パスは必要ありません。 ただし、状況によっては、データベースを通過する追加の計算が必要になります。

2パス式の計算方法は、時間としてタグ付けされたディメンションと、勘定科目としてタグ付けされたディメンションがあるかどうか、および時間ディメンションと勘定科目ディメンションの密疎構成によって異なります。

ハイブリッド集約モードでは、2パス計算を使用しないでください。 かわりに解決順を使用してください。

2パス計算の例の確認

利益%に必要な次の計算を考えてみます:

Profit % = Profit % Sales

次の表に、メジャーおよび年が密ディメンションであるデータ・ブロックのサブセットを示します。 メジャーは勘定科目としてタグ付けされ、年は時間としてタグ付けされます。 AGGMISSG構成設定はオフ(デフォルト)です。

データ値が入力セルにロードされました。 Essbaseでは、数値1から7がその順序で表示されるセルが計算されます。 たとえば、Profit % -> Janは最初に計算され、Profit % -> Qtr1には複数の集計パスがあります。

表33-2 2パス計算の例: データおよび計算順序

Measures -> Year 1月 2月 3月 Qtr1

Profit

75

50

120

5

売上高

150

200

240

6

Profit%

1

2

3

4, 7

ノート:

セルの計算順序がデータベース構成にどのように依存するかについては、「セルの計算順序」を参照してください。

Essbaseでは、次の計算順序が使用されます:

  1. Essbaseでは、Profit % -> Jan、Profit % -> Feb、Profit % -> Mar、およびProfit % -> Qtr1 (前述の1、2、3、4)の式Profit % Salesが計算されます。

  2. Essbaseは、Jan、FebおよびMar (前述の5、6)の値を加算して、Profit -> Qtr1およびSales -> Qtr1を計算します。

  3. Essbaseでは、Profit % -> Jan、Profit % -> FebおよびProfit % -> Mar(前述の7)の値を加算して、Profit % -> Qtr1が計算されます。 このパーセンテージを加算すると、125%の値が生成されますが、これは正しい結果ではありません。

    表33-3 2パス計算の例: 不正な結果

    Measures/Year 1月 2月 3月 Qtr1
    Profit 75 50 120 245 (5)
    売上高 150 200 240 590 (6)

    Profit%

    50% (1)

    25% (2)

    50% (3)

    0% (4)

    125% (7)

  4. データベース・アウトラインでProfit%を2パスとしてタグ付けすると、EssbaseではProfit % Sales式を使用してProfit%値が再計算され、正しい結果が生成されます。

    表33-4 2パス計算の例: 結果の修正

    Measures/Year 1月 2月 3月 Qtr1
    Profit 75 50 120 245 (5)
    売上高 150 200 240 590 (6)

    Profit%

    50% (1)

    25% (2)

    50% (3)

    0% (4)

    125% (7)

    42% (8)

複数の計算パスの詳細は、「計算パス」を参照してください。

2パス計算とインテリジェント計算の相互作用の理解

次の項では、2つのシナリオについて詳しく説明します。 「インテリジェントな計算」を使用している場合は、データベースの構成と一致するシナリオを使用します。各シナリオでは、Essbaseで2パス式を正確に計算する方法が示されます。

これらのシナリオでは、「インテリジェントな計算」の概念を理解している必要があります。 「インテリジェント計算の理解」を参照してください。

シナリオA

このシナリオでは、アウトラインに式を配置し、最適なパフォーマンスを得るために、必要に応じて特定の式に2パスのタグを付けます。

2パスFormulaの追加計算パスがありません

Essbaseでは、データ・ブロックの計算中に2パス式が計算されるため、データベースを介して追加の計算パスを実行する必要はありません。

クリーンとしてマークされたすべてのデータ・ブロック

計算後、すべてのデータ・ブロックは「インテリジェントな計算」のためにクリーンとしてマークされます。

アウトラインでメンバー式に2パスのタグを付けると、Essbaseでは各データ・ブロックの計算中に2パス計算が実行されます。 ただし、計算スクリプトで式を繰り返す場合、Essbaseはデータ・ブロックを読み取り、メモリーに書き込んで式を再計算する必要があります。

シナリオB

このシナリオでは、最適なパフォーマンスのために式の計算を実行する計算スクリプトを作成します。

2パスFormulaの追加計算パス

Essbaseはデータベースを計算し、追加の計算パスを実行して2パスの式を計算します。 最初のデータベース計算後にすべてのデータ・ブロックがクリーンとしてマークされている場合でも、Essbaseでは、2パス式に関連するブロックのクリーン・ステータスが無視され、これらのブロックが再計算されます。

クリーンとマークされていない2パス式のデータ・ブロック

最初の計算の後、Essbaseでは、「インテリジェントな計算」のためにすべてのデータ・ブロックをクリーンとしてマークしています。 データベースを通じた別の計算パスでは、Essbaseは、2パス式に必要なデータ・ブロックを再計算します。 ただし、2番目の計算はデータベースの部分計算であるため、Essbaseは再計算されたブロックをクリーンとしてマークしません。 「インテリジェントな計算」を有効にしてデータベースを再計算すると、これらのデータ・ブロックが不必要に再計算される場合があります。

データベース構成でEssbaseによるシナリオBの使用が許可されている場合は、計算スクリプトを使用して2パス式の計算を実行することを検討してください。 計算スクリプトを使用する場合でも、Essbaseはデータベースを介して追加の計算パススルーを実行しますが、計算後にEssbaseがすべてのデータ・ブロックをクリーンとしてマークしていることを確認できます。 「2パスおよびインテリジェント計算の計算スクリプトの作成」を参照してください。

2パス計算タグまたは計算スクリプトの選択

勘定科目メンバーを2パスとしてタグ付けするとパフォーマンスが向上する場合がありますが、一部のアプリケーションではこのメソッドを使用できません。 最高のパフォーマンスと精度を得るには、次の資格を確認して、2パス・タグを適用するか、計算を2回実行する計算スクリプトを作成する必要があります:

  • メンバーが勘定科目としてタグ付けされたディメンション内にある場合は、そのメンバーに2パスのタグを付けることができます。 データベースでデフォルトの計算を実行すると、データベース・アウトラインで勘定科目としてタグ付けされたディメンションにある場合、Essbaseでは、2パスとしてタグ付けされた式が自動的に再計算されます。

  • メンバーがいずれかのディメンションの動的計算メンバーである場合、そのメンバーを2パスとしてタグ付けできます。

  • 場合によっては、計算スクリプトを使用して、正確な結果を得るために2パス式を計算する必要があります。これは、2パス・タグでパフォーマンス上の利点が得られる場合でも同様です。 「2パスおよびインテリジェント計算の計算スクリプトの作成」を参照してください。

  • 「インテリジェントな計算」を効率的に使用するには、two-passタグのかわりに計算スクリプトを使用します。

  • データベース構成で、「2パス計算とインテリジェント計算の相互作用の理解」で説明されているようにEssbaseでシナリオAが使用され、式が別のデータ・ブロックの値を参照している場合は、計算スクリプトを使用して式を2回計算する必要があります。

  • データベース構成でEssbaseがシナリオBを使用することを意味する場合は、計算スクリプトを使用して2パス式を計算できます。

デフォルトの計算での2パスの有効化

データベース設定を使用すると、デフォルトの計算で2パス計算が可能になります。 2パス計算が有効になっているデータベースでデフォルトの計算を実行すると(デフォルト設定)、Essbaseでは、データベース・アウトラインで勘定科目としてタグ付けされたディメンションで、2パスとしてタグ付けされた式の計算が自動的に試行されます。 これは、デフォルトの計算スクリプトをカスタマイズした場合にも当てはまります。

次のトピックを参照してください:

デフォルトの計算を実行するには、execute calculationMaxL文を使用します。

2パス計算を有効にするには、alter database MaxL文を使用します。

2パスおよびインテリジェント計算の計算スクリプトの作成

次のメソッドを使用して、計算が正確で可能なかぎり高速になるように、「インテリジェントな計算」で2パス計算を実行する計算スクリプトを作成します:

  • 2パス式を再計算する計算スクリプト・コマンドの前に、SET UPDATECALC OFFコマンドを追加して「インテリジェントな計算」を無効にします。 「インテリジェントな計算」が有効になっている場合(デフォルト)、Essbaseではクリーンとマークされていないデータ・ブロックのみが計算されますが、「インテリジェントな計算」が有効になっているデータベースのデフォルト計算を実行すると、すべてのデータ・ブロックがクリーンとマークされるため、Essbaseでは2パス式の再計算は実行されません。

  • 計算スクリプトを使用する場合、Essbaseでは、2パス式は自動的に再計算されません。 CALC TWOPASSコマンドを使用します。

  • CALC ALLのデフォルト計算を変更し、「インテリジェントな計算」が有効になっている場合、最初の計算後にデータ・ブロックがクリーンとしてマークされないことがあります。 「インテリジェント計算の理解」を参照してください。

データベースの最初の完全計算の実行時に「インテリジェントな計算」のパフォーマンス上の利点を得るには、計算のニーズおよびアウトライン構造に応じて、次のいずれかのメソッドを使用します:

これらの3つのオプションでは、次の状況例を使用します:

アウトラインには勘定科目としてタグ付けされたディメンションがあり、密ディメンションです。 各製品の販売を、すべての製品の販売に対するパーセンテージとして計算します。 次の式でディメンションを計算するとします:

Sales % Sales -> Product

Essbaseが各製品のデータ・ブロックを計算する際、値Sales -> Productはまだ計算されていないため、各製品の販売の合計に対する割合は正しくありません。

大きなインデックスを使用したインテリジェント計算

索引が大きく、「インテリジェントな計算」を使用する場合は、最高のパフォーマンスを得るために次のいずれかのオプションを使用できます。 3つのオプションはすべて同じタスクを実行します。

  1. 「インテリジェントな計算」を有効にします。

  2. データベース全体を計算し、データ・ブロックをクリーンとしてマークします。

  3. 「インテリジェントな計算」を無効にします。

  4. この計算はデータベースの部分計算ですが、再計算されたブロックをクリーンとしてマークします。 SET CLEARUPDATESTATUS AFTERコマンドを使用しない場合、Essbaseは、データベースの完全計算後にのみデータ・ブロックをクリーンとしてマークします。

  5. Essbaseは、データベースを循環して、関連するメンバーの式のみを計算するか(この例では、Share of Sales)、データベース・アウトラインで2パスとしてタグ付けされたすべての式を計算します。

計算スクリプトの使用

このモデルを使用して、「インテリジェントな計算」を有効にしてデータベースの完全な計算を実行する計算スクリプトを作成します:

SET UPDATECALC ON;

CALC ALL;
SET UPDATECALC OFF;
SET CLEARUPDATESTATUS AFTER;
"Share of Sales" = Sales % Sales -> Product;
計算スクリプトと2パス・タグの使用

メンバーを2パスとしてタグ付けし、計算スクリプトを使用して最初にフル・データベースを計算し、次に2パス・メンバーを計算するには:

  1. データベース・アウトラインに式を配置し、2パスとしてタグ付けします。
  2. 勘定科目としてタグ付けされたディメンションの適切なメンバーに式を配置します。この例では、Share of Salesです。
  3. データベース全体の計算を実行してから2パスの計算を実行する計算スクリプトを作成します:
    SET UPDATECALC ON;
    CALC ALL;
    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    CALC TWOPASS;
クライアントおよび計算スクリプトの使用

クライアントからデフォルトの計算を実行し、計算スクリプトを使用して式の計算を実行するには:

  1. このデフォルトが変更された場合は、「インテリジェントな計算」を有効にします。
  2. 完全計算を実行します。
  3. 次の例のような計算スクリプトを使用して、インテリジェントな計算を無効にし、式を計算します:
    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    "Share of Sales" = Sales % Sales -> Product;

    または:

    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    CALC TWOPASS;

小さいインデックスを使用したインテリジェント計算

索引が小さい場合に「インテリジェントな計算」を使用するには:

  1. 計算スクリプトを作成してデータベースを計算しますが、計算済データ・ブロックをクリーンとしてマークしないようにEssbaseに指示します。
  2. すべてのデータ・ブロックをクリーンとしてマークし、データ・ブロックを再計算しません。
    SET CLEARUPDATESTATUS OFF;
    CALC ALL;
    CALC TWOPASS;
    SET CLEARUPDATESTATUS ONLY;
    CALC ALL;
  3. Essbaseは、次のタスクを実行します:
    1. SET CLEARUPDATESTATUS OFFコマンドは、計算されたデータ・ブロックをクリーンとしてマークしないようにEssbaseに指示します。
    2. 最初のCALC ALLコマンドを使用すると、Essbaseはデータベースを循環し、すべてのダーティ・データ・ブロックを計算します。 Essbaseでは、計算済データ・ブロックはクリーンとしてマークされません。 Essbaseでは、データベース・アウトラインで2パスとしてタグ付けされた式は自動的に再計算されません。
    3. CALC TWOPASSコマンドを使用すると、Essbaseはデータベースを循環し、データベース・アウトラインで勘定科目としてタグ付けされたディメンションで2パスとしてタグ付けされた式を再計算します。 必要なデータ・ブロックが前のCALC ALLによってクリーンとマークされていないため、Essbaseは式を再計算します。 Essbaseでは、再計算されたデータ・ブロックはクリーンとしてマークされません。
    4. SET CLEARUPDATESTATUS ONLYコマンドは、データ・ブロックをクリーンとしてマークし、データ・ブロックを計算しないようにEssbaseに指示します。 このコマンドは、計算を無効にします。
    5. 最後のCALC ALLコマンドにより、Essbaseはデータベースを循環し、すべてのデータ・ブロックをクリーンとしてマークします。 Essbaseは索引を検索し、データ・ブロックをクリーンとしてマークします。 データ・ブロックは計算されません。

2パス式のインテリジェント計算をオフにしました

Two-Pass式の「インテリジェントな計算」をオフにするには、次のタスクを実行する計算スクリプトを作成します:

  • 「インテリジェントな計算」を無効にします。

  • 完全計算を実行します。

  • 次の2パス式を繰り返します:

    SET UPDATECALC OFF;
    CALC ALL;
    "Share of Sales" = Sales % Sales -> Product;