この項の内容:
この章の情報は、ブロック・ストレージ・データベースのみに適用され、集約ストレージ・データベースとは関係がありません。集約ストレージとブロック・ストレージの比較。も参照してください。
データベースの全体的な計算を設計するとき、データベースのバッチ計算時にメンバーの組合せを事前に計算するのではなく、データの取得時に一部のメンバーの組合せを計算する方が効率的な場合があります。データベースで一部の値を動的に計算することで、データベースの全体的な計算のパフォーマンスが大幅に向上します。
Essbaseでは、メンバーに動的計算を定義できます。この定義は、ユーザーの要求時にEssbaseでメンバーのデータ値を計算するように指定します。動的計算によって、データベースのバッチ計算時間は短縮されますが、動的に計算されるデータ値の取得にかかる時間が増加する可能性があります。取得時間に対する影響の軽減を参照してください。
Essbaseでは、メンバーごとに動的計算を指定します。データベース・アウトラインのメンバーは、次の2つのタイプのうち、いずれかの動的計算済メンバーとして定義できます:
Essbaseでは、データベースのバッチ計算時(CALC ALLの実行時など)に、動的計算タグが付けられたメンバーのデータ値は計算されません。かわりにEssbaseでは、データの取得時(Smart Viewにデータを取得するときなど)にデータ値が計算されます。
Essbaseでは、動的計算メンバーの場合と同じ方法で、データの取得時に動的計算および保管タグが付けられたメンバーのデータ値が計算されます。ただし、動的計算および保管メンバーの場合、Essbaseでは動的に計算されたデータ値が保管されます。その後同じデータ値を再び取得するときに、再計算は必要ありません。ただし、Essbaseで値の再計算が必要であることが検出された場合を除きます。
Essbaseで、動的計算および保管メンバーのデータ値の再計算が必要であることが検出されると、その値を含んでいるデータ・ブロックにインディケータが設定されます。こうすることで、Essbaseでは、データ値の次の取得時にそのブロックを再計算する必要があることを認識できます。
Essbaseでは、データ値自体ではなく、その値を含んでいるデータ・ブロックにインディケータが設定されます。つまり、Essbaseでは、動的計算および保管メンバーをデータ・ブロック・レベルで追跡します。データ・ブロックおよびインデックス・システムを参照してください。
データ・ブロックを再計算する必要がある場合は、Essbaseでその必要性が検出され、次のいずれかの状況が発生したときにデータ・ブロックにインディケータが設定されます:
データの更新時には、Essbaseでデータ・ブロックの再計算の必要性が検出されず、データ・ブロックにインディケータは設定されません。そのため、更新されたブロックは次のバッチ計算時にのみ再計算されます。次のシナリオについて考えてみます:
動的計算および保管メンバーの子にデータをロードし、そのメンバーが子メンバーの集計である場合、Essbaseでは、次の取得時にその動的計算および保管メンバーに再計算が必要であることが認識されません。親メンバーは、次のバッチ計算時にのみ再計算されます。
データのロード後に、データベースのバッチ計算を実行するか、CLEARBLOCK DYNAMIC計算コマンドを使用して、動的計算および保管メンバーを再計算する必要があります。『Oracle Essbaseテクニカル・リファレンス』を参照してください。
データベースの一部の値を動的に計算できれば、データベースの全体的な計算のパフォーマンスが大幅に向上します。
一部のデータ値を動的に計算することで、次の項目を減らすことができます:
ディスク使用量。Essbaseに保管する計算済データ値が少なくなるためです。データベース・サイズとインデックス・サイズも小さくなります。
データベースの再構築時間。たとえば、密次元の動的計算メンバーを追加または削除しても、データ・ブロック・サイズは変化しません。このため、Essbaseではデータベースを再構築する必要がありません。データベースの再構築を参照してください。
データベースのバックアップに必要な時間。データベース・サイズが縮小されるので、Essbaseでバックアップを実行する時間が短くなります。
Essbaseで動的に計算されるデータ値は、取得に時間がかかる可能性があります。動的に計算されるメンバーの取得時間を推測できます。取得時間に対する影響の軽減を参照してください。
どのメンバーも動的計算または動的計算および保管としてタグ付けできます。ただし、次のメンバーは除きます:
動的計算の対象とするメンバーは、データベース構造、および(1)計算時間の短縮やディスク使用量の削減のニーズと、(2)ユーザー向けの高速なデータ取得のニーズとのバランスによって変わります。動的に計算する値の選択を参照してください。
アウトライン・エディタで、動的計算メンバーと動的計算および保管メンバーを確認できます。図126は動的計算メンバーを示しています。
Smart Viewで、ユーザーはビジュアル・キューを表示して動的計算値を区別できます。Oracle Hyperion Smart View for Office User's Guideを参照してください。
動的計算値を含むスプレッドシートを作成するときに、スプレッドシート・デザイナは、「データなし操作」オプションを使用すれば、テスト用のスプレッドシートの作成中に、Essbaseによって値の動的計算と保管が行われないようにできます。
一部のデータ値を動的に計算すれば、計算時間の短縮、ディスク使用量の低減およびデータベース再構築時間の短縮が実現されますが、動的に計算されるデータ値の取得時間は長くなります。
動的に計算するメンバーを決定する場合は、次の項で説明するガイドラインを使用してください。
複雑な式を設定した疎次元のメンバーに動的計算タグまたは動的計算および保管タグを付けます。
Essbaseでは、複雑な式にはコストのかかる計算が必要です。たとえば、財務関数を含んでいる式は複雑な式です。複雑な式の使用を参照してください。
「動的計算」または「動的計算および保管」の選択を参照してください。
バッチ計算の実行に必要な時間を短縮するには、2パス・メンバーに動的計算タグを付けます。会計次元に属していないメンバーを含む、すべての動的計算メンバーまたは動的計算および保管メンバーに2パス・タグを付けることができます。2パス計算の使用を参照してください。
2パス・タグが付けられたメンバーと属性メンバーの相互作用については、属性次元と標準次元の比較を参照してください。
密次元の2パス・メンバーでのクエリーによる、動的計算キャッシュへの影響の詳細は、2パス・メンバーと動的計算を参照してください。
親メンバーに1つの子メンバーがあり、その子に動的計算タグを付ける場合は、親にも動的計算タグを付ける必要があります。同様に、子に動的計算および保管タグを付ける場合は、親にも動的計算および保管タグを付ける必要があります。ただし、親メンバーに1つの子メンバーがあり、親が動的計算メンバーまたは動的計算および保管メンバーの場合は、その子に動的計算タグまたは動的計算および保管タグを付ける必要はありません。
Essbaseでは、計算スクリプトのCALC ALLまたはCALC DIMステートメントを計算するときに、動的計算メンバーと動的計算および保管メンバーの計算をバイパスします。
同様に、メンバー・セット関数(@CHILDRENや@SIBLINGSなど)を使用して、計算するメンバーのリストを指定した場合、Essbaseでは、作成されたリストのすべての動的計算メンバーまたは動的計算および保管メンバーの計算がバイパスされます。
計算スクリプトで明示的に動的計算メンバーまたは動的計算および保管メンバーを指定した場合、その計算スクリプトは失敗します。計算スクリプトで動的計算メンバーまたは動的計算および保管メンバーの計算は実行できません。計算スクリプトを使用してメンバーを明示的に計算する場合は、メンバーに動的計算タグを付けないでください。
たとえば、次の計算スクリプトは、Qtr1が動的計算メンバーでない場合にのみ有効です:
FIX (East, Colas) Qtr1; ENDFIX
式をデータベース・アウトラインに適用するときに、動的に計算されるメンバーをその式に追加できます。たとえば、Qtr1が動的計算済メンバーの場合、データベース・アウトラインでQtr1に次の式を設定できます:
Qtr1 = Jan + Feb;
動的に計算されるメンバーを、計算スクリプトで式計算の対象にすることはできません。Essbaseでは、動的に計算される値に対してメモリーが確保されないため、値をそのメンバーに割り当てることができません。たとえば、Qtr1が動的計算済メンバーまたは動的計算および保管メンバーの場合に計算スクリプトに次の式を追加すると、Essbaseによって構文エラーが表示されます:
Qtr1 = Jan + Feb;
Qtr1が動的計算メンバーまたは動的計算および保管メンバーで、年が動的計算でも動的計算および保管でもない場合は、計算スクリプトで次の式を使用できます:
Year = Qtr1 + Qtr2;
計算スクリプトの前処理段階では、アウトラインに密の動的計算メンバーが含まれているかどうかを判断できません。スクリプトにランタイムに依存する式がある場合、Essbaseでは、スクリプトの実行時に密の動的計算メンバーをすべて計算する必要があります。SET FRMLRTDYNAMIC OFF計算コマンドを使用すると、この動的計算メンバーの計算が停止されるのでパフォーマンスを向上させることができます。『Oracle Essbaseテクニカル・リファレンス』を参照してください。
メンバーの計算が動的計算の子メンバーまたは動的計算および保管の子メンバーの計算に依存する場合、Essbaseでは、親を計算するためにデータベースのバッチ計算時に子メンバーを最初に計算する必要があります。このため、通常の計算時間は短縮されません。この要件は、疎次元のメンバーおよび密次元のメンバーに適用されます。
たとえば、図127では、Qtr1は動的計算メンバーです。その子Jan、FebおよびMarは動的メンバーではありません。その親である年も動的メンバーではありません。Essbaseでは、データベースのバッチ計算時に年を計算する際、Qtr1を含む子の値を集計する必要があります。このため、Qtr1が動的計算メンバーでも、Qtr1を計算するための追加の時間が必要になります。
ほとんどの場合、計算パフォーマンスを最適化し、ディスク使用量を減らすには、動的計算および保管メンバーではなく、動的計算メンバーを使用します。ただし、特定の状況では、動的計算および保管メンバーの方が適しています。
ほとんどの場合、疎次元メンバーを動的に計算するときには、動的計算および保管タグではなく、動的計算タグを付けます。動的計算メンバーを含んでいるメンバーの組合せのデータ値をEssbaseで計算するときに、関連するデータ・ブロックの要求された値のみがEssbaseによって計算されます。この値には、データ・ブロックのサブセットである値を使用できます。
ただし、動的計算および保管メンバーを含んでいるメンバーの組合せのデータ値をEssbaseで計算するときに、要求されたデータ値がデータ・ブロックのサブセットの場合でも、Essbaseではデータ・ブロック全体を計算し、保管する必要があります。このため、計算時間が長くなり、最初の取得時間も長くなります。
Essbaseでは、要求されたデータ値を含んでいるデータ・ブロックのみを保管します。要求されたデータ・ブロックを計算するために中間のデータ・ブロックを計算する必要がある場合、Essbaseでは、その中間ブロックを保管しません。
中間のデータ・ブロックを計算すると、最初の取得時間が大幅に長くなります。たとえば、Sample.Basicデータベースでは、市場と製品は疎次元です。市場と市場の子が動的計算および保管メンバーであるとします。ユーザーがメンバーの組合せMarket -> Cola -> Jan -> Actual -> Salesのデータ値を取得する場合、Essbaseで、Market -> Colaデータ・ブロックが計算され保管されます。Market -> Colaを計算して格納するために、Essbaseでは、中間のデータ・ブロック(East -> Cola、West -> Cola、South -> ColaおよびCentral -> Cola)が計算されます。Essbaseでは、これらの中間のデータ・ブロックは格納されません。
動的計算および保管を使用すると、最初の取得が遅くなることがありますが、後続の取得は動的計算メンバーよりも速くなります。次のメンバーには、動的計算ではなく、動的計算および保管を使用します:
リモート・データベースに子を持つ上位レベルの疎次元メンバー。
Essbaseでは、リモート・データベースから値を取得する必要があるので、取得時間は長くなります。パーティション内のデータの動的計算を参照してください。
Essbaseでは、複雑な式にはコストのかかる計算が必要です。財務関数または次元間メンバーを含んでいる式は複雑な式です。
たとえば、Sample.Basicデータベースでほとんどのユーザーが市場レベルでデータを取得する場合は、市場に動的計算および保管タグを付けて、その子に動的計算タグを付けます。
密次元メンバーには動的計算メンバーを使用します。密次元でメンバーを動的計算および保管として定義しても、取得時間とバッチ計算時間はわずかしか短縮されません。また、Essbaseでは、メンバーのデータ値に対してデータ・ブロックにスペースを確保するので、データベース・サイズ(ディスク使用量)は大幅には縮小されません。
動的に計算されるデータ値を使用すると、Essbaseで値を計算する順序が変更され、データベースの管理方法に影響が及ぶ場合があります。
Essbaseでは、データ値を動的に計算するときに、データベースのバッチ計算順序とは異なる順序でデータを計算します。
バッチ計算の場合、Essbaseでは次の順序でデータベースが計算されます:
計算順序の定義。を参照してください。
動的計算値の場合、Essbaseでは取得時に、値を計算するために、次の順序でデータベースが計算されます:
データの取得で属性メンバーを使用する場合、計算順序の最後の手順は属性の総計です。属性計算は、クエリーで指定された属性メンバーに一致する、即時的な集約をデータ・ブロックで実行します。クエリーに2パス計算メンバーが含まれる場合、属性計算は、すべての集約値が収集された後に2パス計算メンバー式を適用します。この2パス計算は、実際のデータ・ブロックの値ではなく、属性計算からデータ値を使用します。
クエリーで属性メンバーを使用すると、Essbaseでは動的計算でタイム・バランス・メンバーの値が無視されます。属性を使用しない取得では、タイム・バランス・メンバーの値が計算に適用されます。属性メンバーを使用する場合と使用しない場合の計算手順の違いによって、動的に計算される上位レベルの時間メンバーの結果が異なるものになります。
属性を使用しない取得では、動的に計算されるメンバーは最後の手順で計算されるので、タイム・バランスの機能が適切に適用されます。一方、属性を使用する取得では、属性の総計が最後に適用される手順です。計算順序の違いによって、動的に計算される上位レベルの時間メンバーに対して2つの異なる予測可能な結果が生成されます。
Essbaseで2パス・タグが付けられたメンバーのデータ値を動的に計算するときに必要な計算結果が得られるように、次の情報を考慮してください(2パス計算の使用を参照)。
複数の動的計算または動的計算および保管の密次元メンバーに2パス・タグが付けられている場合、Essbaseでは、最初のパスで動的計算が実行され、その後2パス・メンバーが次の順序で計算されます:
たとえば、Sample.Basicデータベースで、次のように想定します:
Essbaseでは、勘定科目次元メンバーが先に計算されます。そのため、Essbaseは、Margin% (メジャー次元から)を計算し、その次にVariance (シナリオ次元から)を計算します。
シナリオが疎次元の場合、Essbaseでは、動的計算の通常の計算順序に従って、最初にVarianceが計算されます。次にEssbaseによってMargin%が計算されます。動的計算の計算順序を参照してください。
この計算順序では、Varianceの式ではなく、Margin%の式を使用してEssbaseでMargin% -> Varianceを計算する必要があるので、必要な結果が得られません。シナリオを密次元にすると、この問題を防ぐことができます。メジャー次元(会計次元)が疎の場合、Essbaseでは最初にMargin%を計算するので、この問題は発生しません。
動的計算に使用される計算順序は、データベースのバッチ計算に使用される計算順序と異なるので、一部のデータベース・アウトラインでは、メンバーに動的計算タグまたは動的計算および保管タグを付けた場合に異なる計算結果を得る可能性があります。この違いは、Essbaseで非対称型データを動的に計算したときに発生します。
対称型データの計算では、計算される次元に関係なく、同じ結果が生成されます。
表75のデータ・セットを使用して、Qtr1 -> Profitを計算すると、時間タグが付けられた次元に従って計算しても、勘定科目タグが付けられた次元に従って計算しても、同じ結果になります。時間次元に従って計算すると、次のようにJan、FebおよびMarの値が加算されます:
50+100+150=300
会計次元に従って計算すると、次のようにQtr1 -> SalesからQtr1 -> COGSが減算されます:
600–300=300
非対称型データの計算では、次元ごとに異なる計算が行われます。
表76のデータ・セットを使用して、East -> Salesを計算すると、市場次元に従って計算した場合は正しい結果になりますが、会計次元に従って計算した場合は誤った結果になります。市場次元に従って計算すると、次のようにNew York、FloridaおよびConnecticutの値が加算され、正しい結果になります:
50 + 100 + 100 = 250
会計次元に従って計算すると、次のようにEast -> Priceの値とEast -> UnitsSoldの値が乗算され、誤った結果になります:
15 * 50 = 750
次のアウトラインでは、Eastが疎次元で、Accountsが密次元です:
EastとSalesに動的計算タグが付けられている場合、Essbaseでは、EastとSalesに動的計算タグが付けられていない場合とは異なる計算結果が生成されます。
EastとSalesが動的計算メンバーでない場合、Essbaseでは次の次元が計算され、正しい結果が生成されます:
EastとSalesが動的計算メンバーの場合、Essbaseでは次の次元が計算され、誤った結果が生成されます:
この問題を回避して必要な結果を確実に得るには、Salesメンバーに動的計算タグまたは動的計算および保管タグを付けないでください。
密次元のメンバーを動的に計算するときの取得時間の増加は、メンバーに複雑な式が含まれていないかぎり、大きくありません。取得時間は、疎次元のメンバーに動的計算タグまたは動的計算および保管タグを付けた場合に大幅に増加する可能性があります。
次の各項では、データベースに対する動的計算メンバーの影響を分析および管理する方法について説明します。
クエリー取得に最も重大な影響を与える関数のリストは、メンバー・セット関数またはパフォーマンスの選択を参照してください。 |
Essbaseでは、データベース・アウトラインの保存時にそのアウトラインの取得係数が計算されるので、これによって取得時間の増加を推測できます。この取得係数は、Essbaseで計算するのに最もコストのかかる、動的に計算されるデータ・ブロックに基づいてEssbaseによって計算されます。取得係数では、集約のみを考慮しています。式の取得の影響は考慮していません。
取得係数は、最もコストのかかるブロックを計算するために、ディスクまたはデータベースからEssbaseによって取得する必要があるデータ・ブロックの数です。データベースで、密次元にのみ動的計算メンバーまたは動的計算および保管メンバーが存在する(疎次元に動的計算メンバーと動的計算および保管メンバーが存在しない)場合の取得係数は、1です。
取得係数の高い(たとえば、2000を超える)アウトラインでは、ユーザーがデータを取得するときに大きな遅延が発生する可能性があります。ただし、取得時間への実際の影響は、ユーザーが取得する動的に計算されるデータ値の数によっても異なります。取得係数は1つの指標にすぎません。アプリケーションによっては、動的計算メンバーを使用することで、データベース・サイズとインデックス・サイズが小さくなり、取得時間が短縮される場合もあります。
Essbaseでは、アプリケーション・ログに取得係数の値が表示されます。
推定の取得係数を表示する方法は、Essbaseサーバー・ログおよびアプリケーション・ログの表示を参照してください。
[Wed Sep 20 20:04:13 2000] Local/Sample///Info (1012710) Essbase needs to retrieve [1] Essbase kernel blocks in order to calculate the top dynamically-calculated block.
このメッセージでは、Essbaseで、最もコストのかかる、動的に計算されるデータ・ブロックを計算するために1つのブロックを取得する必要があることがわかります。
動的計算メンバーまたは動的計算および保管メンバーをデータベース・アウトラインに追加して、そのアウトラインを保存すると、Essbaseにより、動的計算タグと動的計算および保管タグが付けられたメンバーの数に関する要約が作成されます。この要約はEssbaseのアプリケーション・ログに表示されます。
動的に計算されるメンバーの要約を表示する方法は、Essbaseサーバー・ログおよびアプリケーション・ログの表示を参照してください。
[Wed Sep 20 20:04:13 2000]Local/Sample///Info(1007125) The number of Dynamic Calc Non-Store Members = [ 8 6 0 0 2] [Wed Sep 20 20:04:13 2000]Local/Sample///Info(1007126) The number of Dynamic Calc Store Members = [ 0 0 0 0 0]
このメッセージでは、データベース・アウトラインの最初の次元に8個、2番目の次元に6個、5番目の次元に2個の動的計算メンバーがあることがわかります。この数には動的時系列メンバーが含まれています。
Smart Viewにデータを取得するとき、またはレポート・ライターを使用してデータを取得するときに、Essbaseでは、取得バッファを使用して取得を最適化します。Essbaseでは、データがセクション単位で処理されます。取得バッファ・サイズを増やすと、Essbaseで一度に処理できるデータのセクションが増えるので、取得時間を大幅に短縮できます。
デフォルトの取得バッファ・サイズは10KBです。ただし、取得バッファ・サイズに10KBを超えるサイズを設定すると、取得時間が短縮できます。取得バッファのサイズの設定を参照してください。
デフォルトでは、Essbaseでは、密次元の動的計算メンバーを、たとえばクエリーのために計算するときに、計算に必要なすべてのブロックを動的計算キャッシュと呼ばれるメモリーの領域に書き込みます。Essbaseでは、そのブロックを動的計算キャッシュに書き込むときに、そのブロックを拡張して、密次元のすべての動的計算メンバーを含めます。
クエリーに密次元の2パス計算メンバーが含まれる場合、クエリーでは取得対象のブロックに対してそれぞれ1つの動的計算キャッシュが必要です。
Essbaseの動的計算キャッシュを使用すると、動的計算のメモリー使用率を集中制御できます。動的計算キャッシュでデータ・ブロックを管理すると、全体のメモリー・スペース要件が小さくなり、メモリー割当てを行うためにオペレーティング・システムを呼び出す回数を減らせるので、パフォーマンスを向上させることができます。
動的計算キャッシュと計算キャッシュでは、計算パフォーマンスを最適化するためのアプローチが異なります。計算機キャッシュのサイズ設定を参照してください。 |
Essbaseでは、データの取得ごとに2つのメッセージがアプリケーション・ログに書き込まれます。次の例で、最初のメッセージは取得にかかった合計時間を示しています:
[Thu Aug 03 14:33:00 2005]Local/Sample/Basic/aspen/Info(1001065) Regular Extractor Elapsed Time : [0.531] seconds [Thu Aug 03 14:33:00 2005]Local/Sample/Basic/aspen/Info(1001401) Regular Extractor Big Blocks Allocs -- Dyn.Calc.Cache : [30] non-Dyn.Calc.Cache : [0]
動的計算キャッシュを使用している場合は、2つ目のメッセージに、データ計算機キャッシュ内で計算されたブロックの数(Dyn.Calc.Cache: [n])、および動的計算キャッシュの外部のメモリーで計算されたブロックの数(non-Dyn.Calc.Cache: [n])が表示されます。
動的計算キャッシュが効果的に使用されているかどうかを判断するために、両方のメッセージを確認して、essbase.cfgの設定を検討します。たとえば、ブロックが動的計算キャッシュの外部および内部で計算されたことがメッセージに示されている場合は、DYNCALCCACHEMAXSIZE設定を増やすことができます。指定した最大サイズがサーバー上のすべての動的計算キャッシュに用意できる上限の場合、および計算機キャッシュの外部のメモリーを使用して動的に計算される取得を実行すると、スワッピングやページング・アクティビティなどが原因で許容できない遅延が発生する場合は、DYNCALCCACHEWAITFORBLKをTRUEに設定します。
performance statistics文法と一緒にquery database MaxLステートメントを使用して、動的計算キャッシュのアクティビティの要約を表示できます。『Oracle Essbaseテクニカル・リファレンス』を参照してください。
標準のEssbase手順で動的計算を使用すると、次のプロセスに影響します:
CLEARBLOCK DYNAMICコマンドを使用して、動的計算および保管メンバーの組合せのデータ・ブロックを削除できます。
CLEARDATAコマンドを使用して、動的計算および保管データ・ブロックにマークできるので、Essbaseでブロックの再計算を認識できます。CLEARDATAコマンドは、動的計算メンバーのデータ値に影響しません。
動的に計算されるデータ値にはデータをコピーできません。動的計算メンバーと動的計算および保管メンバーは、DATACOPY計算コマンドの対象として指定できません。
データのロード時に、Essbaseでは、動的計算メンバーまたは動的計算および保管メンバーを含んでいるメンバーの組合せにデータをロードしません。Essbaseでは、データのロード時にこれらのメンバーはスキップされ、エラー・メッセージは表示されません。
データのロード後に動的計算メンバーと動的計算および保管メンバーにデータを配置する場合は、Essbaseで動的計算および保管メンバーが確実に再計算されるようにしてください。再計算で更新された値による影響を参照してください。
Essbaseでは、データをエクスポートする前に動的計算値が計算されることはありません。Essbaseでは、動的計算メンバーの値はエクスポートされません。以前にユーザーがデータを取得した際の計算値がデータベースに存在する場合にのみ、Essbaseで動的計算および保管メンバーの値がエクスポートされます。
Essbaseでは、動的に計算されるメンバーにSPARSEデータ抽出メソッドを使用できません。SPARSEデータ抽出メソッドは、報告されるデータ行の大部分が#MISSINGの場合にパフォーマンスを最適化します。『Oracle Essbaseテクニカル・リファレンス』の<SPARSEコマンドに関する説明を参照してください。
データベースの計算時に、Essbaseでは、すべての動的計算メンバーと動的計算および保管メンバーの計算がスキップされます。計算スクリプト内で動的計算メンバーまたは動的計算および保管メンバーのメンバー計算を実行しようとすると、Essbaseでエラー・メッセージが表示されます。計算スクリプトと動的計算を参照してください。
アウトライン・エディタを使用して動的計算メンバーと動的計算および保管メンバーを作成する方法は、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「メンバー・ストレージ・プロパティの設定」を参照してください。
次元の構築時に、次元構築データ・ファイルで動的計算メンバーと動的計算および保管メンバーを作成するには、動的計算にプロパティXを使用し、動的計算および保管にプロパティVを使用します。データ・ソースを使用したメンバー・プロパティの操作を参照してください。
動的計算メンバーを密次元に追加すると、Essbaseでは、そのメンバーの値に対してデータ・ブロックのスペースが確保されません。このため、Essbaseではデータベースを再構築する必要がありません。ただし、動的計算および保管メンバーを密次元に追加すると、Essbaseで、そのメンバーの値に対して関連データ・ブロックのスペースが確保されるので、データベースを再構築する必要があります。
動的計算メンバーまたは動的計算および保管メンバーを疎次元に追加すると、Essbaseによりインデックスが更新されますが、関連データ・ブロックは変更されません。インデックス・マネージャを参照してください。
Essbaseでは、データベースを再構築する必要がなければ、データベース・アウトラインの変更がきわめて高速で保存されます。
次の場合は、Essbaseでデータベースの再構築およびインデックスの変更が行われません(Essbaseではデータベース・アウトラインのみを保存し、この処理は非常に高速です):
次の場合、Essbaseでは、データベースは再構築されませんが、データベースのインデックスは再構築されます。この処理はきわめて高速です:
データベースの再構築のタイプを参照してください。
パーティションの透過領域、複製領域またはリンク領域で、動的計算メンバーと動的計算および保管メンバーを定義できます。パーティション・アプリケーションの設計を参照してください。
たとえば、リモート・データベース(透過データベース・パーティション)上に子を持つ、上位レベルの疎次元メンバーに動的計算および保管タグを付けた場合、Essbaseでは、他のデータベースから子の値を取得するので、取得時間が長くなります。動的計算および保管のかわりに動的計算を使用できますが、後続の取得時間への影響が大きくなりすぎる可能性があります。
たとえば、ローカル・データベースがCorporateデータベースで、そのデータベースにEast、West、SouthおよびCentralの地域データへの透過パーティションがあるとします。親メンバーのMarketに動的計算および保管タグを付けることができます。
透過パーティションでは、リモート・データベース上の定義がローカル・データベース上の定義よりも優先されます。たとえば、ローカル・データベースで動的計算タグが付けられているメンバーに、リモート・データベースではそのタグが付けられていない場合、Essbaseでは、リモート・データベースから値が取得され、ローカル計算は実行されません。
複製パーティションを使用する場合は、動的計算および保管メンバーではなく、動的計算メンバーを使用することを検討してください。複製データの計算時に、Essbaseではリモート・データベースから子ブロックを取得しないので、取得時間への影響は大きくありません。