機械翻訳について

シミュレーション計算を使用した計算時間の推定

計算スクリプトでSET MSG ONLYを使用して計算をシミュレートできます。 シミュレーション計算では、同じデータおよびアウトラインに基づく実際の計算のパフォーマンスの分析に役立つ結果が生成されます。

SET NOTICE HIGHなどのコマンドを使用してシミュレーション計算を実行すると、各疎ディメンションの完了にかかる相対時間をマークできます。 次に、1つ以上のディメンションに対して実際の計算を実行することで、シミュレーションされた計算の実行にかかる時間が実際の計算の実行にかかる時間に比例するため、完全な計算にかかる時間を見積もることができます。

たとえば、計算が午前9:50:00に開始され、最初の通知が午前09:50:10にタイムスタンプされ、次の通知が午前09:50:20にタイムスタンプされる場合、計算の各部分に10秒かかったことがわかります。 その後、最初の部分に対してのみ実際の計算を実行し、実行に30秒かかった場合は、他の部分も30秒かかることがわかります。 合計で2つのメッセージがあった場合、実際の計算には約60秒 (20 / 10 * 30 = 60秒) かかることがわかります。

次の各トピックでは、シミュレート計算の実行方法と、シミュレーション計算を使用して計算時間を見積もる方法について説明します。

シミュレーション計算の実行

計算時間を見積もる前に、実際のデータベースに基づくデータ・モデルに対してシミュレーション計算を実行する必要があります。

シミュレーション計算を実行するには:

  1. 情報が必要なすべてのディメンションおよびすべての詳細レベルを使用するデータ・モデルを作成します。
  2. すべてのデータのロード。 このプロシージャは、データベースにロードされたデータのみを計算します。
  3. 次のエントリで計算スクリプトを作成します:
    SET MSG ONLY;
    SET NOTICE HIGH;
    CALC ALL;

    密ディメンションで動的計算を使用している場合は、CALC ALLコマンドを計算する必要がある特定のディメンション(CALC DIM EASTなど)に置き換えます。

    ノート:

    スクリプトを検証しようとすると、Essbaseによってエラーが報告されます。 エラーを無視します。

  4. スクリプトを実行します。
  5. アプリケーション・ログで最初の疎計算メッセージを検索し、メッセージの時間を書き留めます。
  6. 後続の各メッセージの時間に注意してください。
  7. 動的に計算されないモデルの密ディメンションを計算します:
    CALC DIM (DENSE_DIM1, DENSE_DIM2, …);
  8. モデルの疎ディメンションを計算します:
    CALC DIM (SPARSEDIM1, SPARSEDIM2, …);
  9. 通知が発生する間隔を予測し、疎計算結果に対して検証します。 その後、計算時間を見積もることができます。

計算時間の見積り

シミュレートされた計算を実行する場合は、結果を記録し、それを使用して実際の計算時間を見積もります。

合計計算時間を見積もるには:

  1. SET NOTICE HIGHで生成されたアプリケーション・ログ・メッセージ間のすべての時間間隔に注意してください。

    次の表を参照してください。

  2. 次の計算を使用して、実際の計算の時間を見積もります:

    シミュレーション計算に必要な合計時間を最初のシミュレーション計算通知間隔で除算した値に最初の実際の計算時間間隔を乗算した値。

    表33-1 ログ・メッセージ間のサンプル間隔

    計算通知番号 シミュレーション計算時間間隔(秒) 疎ディメンション計算間隔(秒)

    1

    7

    45

    2

    5

     

    3

    6

     

    4

    3

     

    5

    4

     

    6

    2

     

    7

    6

     

    8

    4

     

    9

    3

     

    10

    3

     

    合計計算時間

    43

     

    この例では、43 / 7 * 45 = 276.4秒であるため、実際の計算には276.4秒かかります。

見積精度に影響するファクタ

シミュレートされた計算では、次の問題を除いて、正確な時間が約5%に戻されます:

これらのファクタが存在する場合、この見積り手法では、Essbaseがシミュレーションされた計算の30%-40% (SET NOTICE HIGHによって生成されたメッセージの30%-40%)に達すると、計算時間がより厳密に予測されます。

影響チェーンによるバリエーション

SET MSG ONLYを計算時推定手法として使用する場合は、後のCALCNOTICE間隔に対して検証する必要があります。 この見積り方法の結果は、次の影響チェーンによって異なります:

  1. ブロックの密度は実際の連結プロセスによって異なるため、

  2. このため、Essbaseがディスクにブロックを書き込む速度は異なります

  3. したがって、キャッシュ内でブロックが処理される割合は異なります

  4. 実際の結果は、予測計算時間とは異なる場合があります。

アウトライン構造によるバリエーション

実際の結果が予測と大幅に異なる可能性があるもう1つのファクタは、アウトライン構造です。 CALCNOTICE間隔に基づく計算では、アウトライン全体で処理時間が均等に均衡化されていることが前提となります。 このバランスを偏りうるファクタには、次のような状況があります:

  • モデルには、他の疎ディメンションと比較して大きい1つまたは2つの疎ディメンションが含まれています。

  • 大きいディメンションには、複数の共有ロールアップになるメンバー構成があります。

結果に基づいたアウトラインの変更

シミュレーション計算を見積もり、分析した後、アウトラインを変更してパフォーマンスを向上させることができます。

アウトラインの上から下に、疎ディメンションを並べ替えて、最上位ブロックの増加率を最も低くします:

  • フル・モデル・ロード後のレベル0ブロック: 100,000

  • 疎ディメンションのみを連結した後の上位レベル・ブロック1: 1,000,000

  • 疎ディメンション2のみを連結した後の上位レベル・ブロック: 3,000,000

  • 疎ディメンション3のみを連結した後の上位レベル・ブロック: 10,000,000

  • 疎ディメンション4のみを連結した後の上位レベル・ブロック: 300,000

  • 疎ディメンション5のみを連結した後の上位レベル・ブロック: 5,700,000

例:

  • #4 (メンバー= 10,000, 4レベル)

  • #1 (メンバー= 500, 2レベル)

  • #2 (メンバー= 100, 4レベル)

  • #5 (メンバー= 10,000, 4レベル)

  • #3 (メンバー= 20,フラット)

シミュレートされた計算を使用して、上位ブロック数を生成します。 前述のアイテムの横に示されているように、これらの数値は実際のディメンション・サイズにかかわらず正確である可能性があります。

注意:

メンバーの最大数は、必ずしも適切な予測子ではありません。