計算のモニターとトレース

Essbaseの計算をモニターおよびトレースして、メンバー式の処理に関するインサイトを取得します。CALCTRACEおよびSET TRACEを使用すると、Smart Viewまたは保管済の計算で実行される計算をトレースできます。テストのパフォーマンス統計を記録するには、SET MSGおよびSET NOTICEを使用します。

計算トレースを有効にするには、CALCTRACE構成プロパティを使用してから、Smart Viewを使用してコンテキスト依存トレースを開始するか、計算スクリプトでSET TRACEコマンドを使用してトレースするデータ交差を選択します。詳細は、「トレースの計算」を参照してください。

Essbaseによるキューブの計算方法に関する情報をアプリケーション・ログに表示するには、計算スクリプトでSET MSGおよびSET NOTICEを使用します。「計算テストおよび統計のSETコマンド」を参照してください。

トレースの計算

Essbase計算トレースを使用すると、メンバー式の処理に関するインサイトが得られ、ブロック・ストレージ計算スクリプトのデバッグおよび調整に役立ちます。コンテキスト依存のSmart View計算トレースに対してCALCTRACEを有効にするか、SET TRACEコマンドを使用してトレースするデータ交差を選択します。

計算トレースでは、キューブに対して計算スクリプトが正常に実行された後に、計算について記録された情報にアクセスできます。

計算をトレースしても、計算の動作は変更されません。計算がSmart Viewで起動され、管理者が有効にした計算トレースが接続されたサーバーにある場合、Smart Viewでは、計算の実行後に詳細を含むポップアップ・ダイアログ・ボックスが表示されます。計算トレース情報は、ポップアップ・ダイアログからテキスト・エディタにペーストできます。または、Essbaseのデータベース・ファイル・ディレクトリにあるcalc_trace.txtに同じ情報があります。

計算の結果が予想したものと異なる場合に、計算トレース情報は計算スクリプトの実行のデバッグに役立つことがあります。

計算トレースは、シナリオ管理が有効になっているアプリケーションではサポートされません。

計算トレースを有効にするには、最初に管理者がCALCTRACEアプリケーション構成パラメータを有効にする必要があります。アプリケーションで計算トレースを有効にした後は、次の2つの方法でこれを利用できます:

  • Smart Viewでは、1つのセル値について状況依存のトレースが使用可能です。
    1. Smart Viewで、計算トレースを有効にしたアプリケーションに問合せシートを接続します。
    2. 計算済の値をトレースするデータ・セルを強調表示します。
    3. 「Essbase」タブの「データ」パネルで、「計算」ボタンをクリックして実行する計算スクリプトを選択します。トレース・メンバー・ランタイム・プロンプトに、強調表示したデータ・セルからの視点が表示されます。
    4. 「起動」をクリックして計算スクリプトを実行します。

      スクリプトに含まれている計算のスコープ全体が計算されますが、計算の際には強調表示されているデータ・セル・コンテキストのみがトレースされます。

    5. 計算スクリプトの最後に、強調表示されているデータ・セルの計算前および計算後の結果が表示されている、「計算結果」ダイアログ・ボックスの内容を確認します。

      強調表示されているデータ・セルが計算時に変更されなかった場合、セルが変更されなかったことを示すメッセージが表示されます。

  • 計算スクリプトで、SET TRACE計算コマンドを使用して、トレース対象のデータ交差を選択できます。SET TRACEを使用すると、複数のデータ・セルをトレースできます。また、SET TRACE mbrList (メンバー・リストに対する計算トレースをオンにする)およびSET TRACE OFF (スクリプトに新しいSET TRACEが出現するまで計算トレースを無効にする)の組合せを使用して、計算スクリプトのセクションをトレースできます。SET TRACEコマンドを使用するには、キューブ・デザイナ、CLI calcコマンド、Essbase Webインタフェース「計算の実行」ジョブまたはMaxL (execute calculation文)を使用して、Smart Viewの外部で計算スクリプトを実行する必要があります。
次の計算スクリプトはSample Basicで実行されます。スクリプトにはSET TRACEコマンドが含まれており、California市場における製品SKU番号100-10の1月の予算計上された売上を表すデータの交差(セル)に記録される詳細情報をリクエストします。
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
   "Sales" (
      "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
   );
ENDFIX;

Sample Basicには、ProductとMarketの2つの疎ディメンションが含まれています。メンバー式は、密ディメンションであるMeasuresのメンバーのSalesに対する式です。FIX文のメンバー・リストには、Marketディメンションに属する1つの疎メンバーCaliforniaのみが含まれています。

FIXスコープの既存のブロック数によって、トレースするセルが計算される回数が決まります。この例では、計算はCaliforniaの既存のすべての疎メンバーの組合せを反復します。これらの各組合せはブロックを表します。

計算の完了後、次のトレース情報がログに記録されて表示されます:

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 1)
Previous value: 840.00
Dependent values: 
	[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00

Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
	[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
	[200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

[...calc iterations 4-7 are omitted from example...]

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values: 
	[400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

この計算トレース・ログでは、トレースされたセルでの計算の動作に関する次のインサイトを提供します:

  • トレースされたセルが複数回にわたって計算され、セル値が毎回新しい値で上書きされています(報告されたセルの更新数が8で止まります)。

  • 計算前のセルの値は840.00でした。

  • 各計算について、依存値と新しい値が表示されます。依存値がFIX文のメンバー式から取得されます。

  • すべての計算が完了した後の、トレースされたセルの最終値は9ですが、これは製品"400-20"->Californiaの値を10で割ったものです。

  • Salesのメンバー式を含む計算スクリプトの91-93行目で、更新された値が計算されています。

反復される各ブロックについて、次の式を使用してSalesが計算されます:

"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10

この式には左側に疎メンバーが含まれており、実際の計算ブロックが初期FIXブロックとは異なるものになる可能性があります。たとえば、計算で"California"->"100-20"が繰り返される場合、計算は実際には"California"->"100-10"で実行されます。

Block from FIX scopeおよびActual block used in calculationというタイトルのトレース・ログ・エントリは、FIX文のブロックとメンバー式で表されるブロックの間に差異がある場合にのみ出力されます。これらのログ・エントリには、重複した計算がある理由が示される可能性があり、計算スクリプトのデバッグに役立ちます。

計算テストおよび統計のSETコマンド

Essbaseブロック・ストレージ計算スクリプトでSETコマンドを使用して、計算パフォーマンスのテストおよびモニタリングに役立つ計算情報、設定および統計を収集できます。コマンドは、SET MSG SUMMARY、SET MSG DETAILおよびSET NOTICEです。

SET MSG SUMMARYおよびSET MSG DETAIL

計算スクリプトでSET MSG SUMMARYおよびSET MSG DETAIL計算コマンドを使用して、次のことを実行できます:

  • 計算設定(完了通知メッセージが有効になっているかどうかなど)の表示

  • 作成済、読取り済および書込み済のデータ・ブロック数に関する統計の提供

  • 計算済のデータ・セル数に関する統計の提供

SET MSG DETAILでは、Essbaseがデータ・ブロックを計算するたびに情報メッセージも表示されます。SET MSG DETAILは、データ・ブロックの計算順序を確認する場合や、高機能再計算をテストする場合に役立ちます。

注意:

SET MSG DETAILは処理オーバーヘッドが高くなるため、テスト計算時にのみ使用してください。

SET MSG SUMMARYで発生する処理オーバーヘッドはキューブ・サイズに応じて約1%から5%であるため、すべての計算に適しています。

SET NOTICE

計算スクリプトでSET NOTICE計算コマンドを使用して、計算済のキューブのパーセンテージを示す計算完了通知を表示できます。SET MSG SUMMARYコマンドをSET NOTICEコマンドとともに使用して、完了通知間の計算の進行状況を表示できます。完了通知は、非常に小さなキューブで使用される場合を除いて、計算のパフォーマンスを大幅に下げることはありません。