計算時間を推定するための計算のシミュレート

Essbaseブロック・ストレージ・キューブのモデルで計算をシミュレートして、実際の計算にかかる時間を推定できます。これを行うには、SET MSG ONLYおよびSET NOTICE HIGHを指定して計算スクリプトを実行し、完了時間をメモして外挿します。

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

SET NOTICE HIGHなどのコマンドでシミュレート計算を実行することで、それぞれの疎ディメンションの完了にかかる相対的な時間をマークできます。その後、1つ以上のディメンションで実際の計算を実行することで、フル計算にかかる時間を見積ることができます。これは、シミュレート計算の実行にかかる時間が、実際の計算の実行にかかる時間に比例するためです。

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

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

計算のシミュレート

コマンドSET MSG ONLYおよびSET NOTICE HIGHを指定して計算スクリプトを実行し、アプリケーション・ログのタイムスタンプを書き留めて、Essbaseブロック・ストレージ・キューブのモデルでの計算をシミュレートします。

計算時間を見積もる前に、実際のキューブに基づいたデータ・モデル上でシミュレート計算を実行する必要があります。その後、アプリケーション・ログをチェックして、計算にかかった時間を確認できます。

アプリケーション・ログの場所を学習するには、Essbaseプラットフォームの環境の場所を参照してください。

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

  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. 通知が行われる間隔を見積り、疎の計算結果と照らし合わせて確認します。それによって、計算時間を見積ることができます。

計算コマンドを参照します。

計算時間の見積り

シミュレートされた計算の結果を記録し、それらを使用してEssbaseブロック・ストレージ・キューブの実際の計算時間を推定します。

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

  1. SET NOTICE HIGHで生成されるアプリケーション・ログ・メッセージ間のすべての間隔の時間を確認します。

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

  2. 次の計算を使用して、実際の計算にかかる時間を見積ります。

    シミュレート計算にかわかった合計時間/シミュレート計算における最初の通知間隔X実際の計算における最初の時間間隔。

    表34-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秒かかることになります。

見積りの精度に影響する要因

Essbaseブロック・ストレージ・キューブのシミュレートされた計算に基づく推定の精度は、ブロック密度やアウトライン構造などの要因によって影響を受ける可能性があります。

バリエーションを引き起こす主要な要因が存在しない場合、シミュレートされた計算は、約5%の正確な時間を戻す必要があります。

When these factors are present, this estimating technique more closely predicts calculation time when Essbase reaches 30%–40% of the simulated calculations (30%–40% of the messages generated by SET NOTICE HIGH).

連鎖的な影響による変動

計算時間の見積り手法としてSET MSG ONLYを使用する場合は、後でCALCNOTICE間隔と照らし合わせて検証する必要があります。この見積り手法の結果は、次のような連鎖的な影響によって変動します。

  1. 実際の集計プロセスによって、各ブロックのブロック密度に違いが発生し、そのため

  2. Essbaseによって各ブロックがディスクに書き込まれる速度に違いが発生し、そのため

  3. 各ブロックがキャッシュで処理される速度に違いが発生し、そのため

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

アウトラインの構造による変動

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

  • モデル内に他の疎ディメンションと比べて大きな疎ディメンションが1、2個含まれています。

  • 大きいディメンションが、複数の共有ロールアップが発生する原因となるメンバー構成になっています。

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

Essbaseブロック・ストレージ・キューブのモデルのシミュレーション計算を推定および分析した後、パフォーマンスを向上させるためにアウトラインを変更できます。

アウトライン内の上から下へ、上位ブロックで最もパーセンテージの増加が少なくなるよう、次のように疎ディメンションを順序付けします。

  • モデルのフル・ロードの後の、レベル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、フラット)

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

注意:

メンバーの最大のカウントは、必ずしも有効な予測材料ではありません。

ハイブリッド・モードの使用を検討してください。ハイブリッド・モード・キューブでは、ディメンションの順序を再配置するのではなく、解決順を簡単にカスタマイズできます。