SET CLEARUPDATESTATUSコマンドの使用
場合によっては、Essbaseで計算済ブロックがクリーンとしてマークされないことがあります。たとえば、データベースのサブセットを計算したり、2つの計算パスでデータベースを計算する場合などです。 インテリジェント計算のためにデータ・ブロックを手動でクリーンとしてマークするには、計算スクリプトでSET CLEARUPDATESTATUSコマンドを使用します。 この項を読み、「インテリジェント計算およびデータ・ブロック・ステータス」も参照してください。
SET CLEARUPDATESTATUSの理解
SET CLEARUPDATESTATUSコマンドには、AFTER、ONLY、OFFの3つのパラメータがあります。
-
SET CLEARUPDATESTATUS AFTER;
Essbaseは、データベースのサブセットを計算している場合でも、計算済データ・ブロックをクリーンとしてマークします。
-
SET CLEARUPDATESTATUS ONLY;
Essbaseは、指定されたデータ・ブロックをクリーンとしてマークしますが、データ・ブロックは計算しません。 このパラメータはAFTERと同じ結果になりますが、計算は行われません。
-
SET CLEARUPDATESTATUS OFF;
Essbaseはデータ・ブロックを計算しますが、計算されたデータ・ブロックをクリーンとしてマークしません。 データベースの完全計算(CALC ALL)であっても、データ・ブロックはクリーンとしてマークされません。 計算されたデータ・ブロックの既存のクリーンまたはダーティ・ステータスは変更されません。
SET CLEARUPDATESTATUS設定の選択
SET CLEARUPDATESTATUSコマンドを使用して計算済データ・ブロックをクリーンとしてマークする場合は、パラメータ(AFTER、ONLY、OFF)を選択する前に次の推奨事項に注意してください:
-
計算されたデータ・ブロックのみがクリーンとしてマークされます。
-
同時計算で同じデータ・ブロックを計算する必要がないことが確実な場合を除き、SET CLEARUPDATESTATUS AFTERコマンドを同時計算とともに使用しないでください。 インテリジェント計算が有効になっている状態で同時計算で同じデータ・ブロックを計算しようとすると、他の同時計算によってデータ・ブロックがすでにクリーンとマークされている場合、Essbaseではデータ・ブロックが再計算されません。 「同時計算の処理」を参照してください。
-
Essbaseは、データベースを通過する最初の計算パスでデータ・ブロックを計算するときに、そのデータ・ブロックをクリーンとしてマークします。 インテリジェント計算が有効になっている後続のパスで同じデータ・ブロックを計算しようとしても、データ・ブロックはすでにクリーンとしてマークされているため、Essbaseでは再計算されません。
SET CLEARUPDATESTATUSを使用する例の確認
Sample.Basicデータベースを使用するシナリオを想定します:
-
疎ディメンションはMarketおよびProductです。
-
New Yorkは疎Marketディメンションのメンバーです。
-
インテリジェント計算がオンになっています(デフォルト)。
次の例は、SET CLEARUPDATESTATUSの様々な使用方法を示しています:
例1: CLEARUPDATESTATUS AFTER
SET CLEARUPDATESTATUS AFTER;
FIX(“New York”)
CALC DIM(Product);
ENDFIX
この例では、Essbaseは、New Yorkのダーティな親データ・ブロック(たとえば、ColasがProductディメンションの親メンバーであるNew York -> Colas)を検索します。 これらのダーティ・ブロックが計算され、クリーンとしてマークされます。 Essbaseでは、レベル0のデータ・ブロックは計算されないため、クリーンとしてマークされません。 レベル0ブロックの詳細は、「計算順序の定義」を参照してください。
例2: CLEARUPDATESTATUS ONLY
SET CLEARUPDATESTATUS ONLY;
FIX(“New York”)
CALC DIM(Product);
ENDFIX
Essbaseは、New Yorkのダーティな親データ・ブロック(たとえば、ColasがProductディメンションの親メンバーであるNew York -> Colas)を検索します。 Essbaseでは、使用済の親データ・ブロックがクリーンとしてマークされますが、データ・ブロックは計算されません。 レベル0のデータ・ブロックは計算されないため、Essbaseではクリーンとしてマークされません。 たとえば、New York -> 100-10 (レベル0のブロック)が使用済の場合、使用済のままになります。
例3: CLEARUPDATESTATUS OFF
SET CLEARUPDATESTATUS OFF;
CALC ALL;
CALC TWOPASS;
SET CLEARUPDATESTATUS ONLY;
CALC ALL;
この例では、Essbaseは最初にデータベース内のすべてのダーティ・データ・ブロックを計算します。 計算されたデータ・ブロックは使用済のままです。 Essbaseでは、クリーンとしてマークされません。
次に、Essbaseは、勘定科目としてタグ付けされたディメンションにある、2パスとしてタグ付けされたメンバーを計算します。 データ・ブロックはまだ使用済としてマークされているため、Essbaseによって再計算されます。 ここでも、計算されたデータ・ブロックにクリーンのマークは付けられません。
Essbaseは、データベース内のすべての使用済ブロックを検索し、それらをクリーンとしてマークします。 CALC ALLコマンドが使用されていても、ブロックは計算されません。