計算パフォーマンスのための設計
計算パフォーマンスを最適化するようにデータベースを構成できます。
サイトの最適な構成は、データベースの性質とサイズによって異なります。 次のトピックの情報は、ガイドラインとしてのみ使用してください。
ブロック・サイズおよびブロック密度
データ・ブロック・サイズが8 KBから100 KBの場合は、ほとんどの場合に最適なパフォーマンスが得られます。
データ・ブロックが8 KBよりはるかに小さい場合、索引は通常非常に大きくなるため、Essbaseはディスクへの書込みおよびディスクからの索引の取得を強制されます。 このプロセスにより、計算速度が低下します。
データ・ブロックが100 KBよりはるかに大きい場合、インテリジェント計算は効果的に機能しません。 「インテリジェント計算の理解」を参照してください。
計算のパフォーマンスとデータ・ストレージを最適化するには、データベースの密および疎ディメンション構成を再配置して、データ・ブロック密度とデータ・ブロック・サイズのバランスを取ります。 次の推奨事項に留意してください:
-
可能なかぎり高いブロック密度で、データ・ブロック・サイズを8 KBから100 KBの間に保ちます。
-
代表的なデータを含むデータベースの最も有望な構成のテスト計算を実行します。 結果を確認して、最適な計算パフォーマンスを生成する構成を決定します。
潜在的および実際のデータ・ブロック数やデータ・ブロック・サイズなど、データベースに関する情報を表示できます。
データ・ブロック情報を表示するには:
GETDBINFO 「ESSCMDシェル」コマンドを使用します。
疎ディメンションの順序
データベース・アウトラインで(属性ではなく)標準疎ディメンションの順序を変更することで、計算パフォーマンスを向上させることができます。 標準の疎ディメンションをそれに含まれるメンバーの数で順序付けし、最も少ないメンバーを含むディメンションを最初に配置します。 この配置により、サイトに応じて多くの改善が可能になります:
-
計算機キャッシュはより効率的に機能し、大規模なディメンション(1000メンバーを含むものなど)を持つデータベース・アウトラインの場合、パフォーマンスが約10%向上します。
-
パラレル計算が使用可能な場合、メンバーが最も多い標準疎ディメンションがアウトラインの最後の標準疎ディメンションであれば、より多くの場合に使用されます。
増分データ・ロード
多くの企業がデータを段階的にロードしています。 たとえば、会社は毎月その月のデータをロードできます。
データを増分的にロードする際の計算パフォーマンスを最適化するには、ディメンションを時間として疎ディメンションにタグ付けします。 時間ディメンションが疎の場合、データベースには各期間のデータ・ブロックが含まれます。 期間別にデータをロードすると、関連する期間を含むブロックが少なくなるため、Essbaseではアクセスするデータ・ブロックが少なくなります。 したがって、「インテリジェントな計算」を有効にしている場合は、使用済とマークされているデータ・ブロックのみが再計算されます。 たとえば、Marchのデータをロードすると、Marchのデータ・ブロックとMarchの依存する親のみが更新されます。
ただし、時間ディメンションを自然に稠密にすると、索引のサイズが大幅に増加し、大規模な索引に対応するための物理I/Oアクティビティが増えるため、パフォーマンスが低下する可能性があります。
timeとしてタグ付けされたディメンションが密の場合でも、疎ディメンションの部分データ・ロードを実行すると、「インテリジェントな計算」からいくつかの利点が得られます。 たとえば、Productが疎の場合、ある製品のデータをロードすると、Essbaseでは、時間が密で「インテリジェントな計算」が有効になっていても、部分ロードの影響を受けるブロックのみが再計算されます。
増分ロードの詳細は、「集約ストレージ・データベースへのデータのロード」を参照してください。
複数のフラット・ディメンションを持つデータベース・アウトライン
データベース・アウトラインに複数のフラット・ディメンションがある場合、計算パフォーマンスが影響を受ける可能性があります。 フラット・ディメンションには非常に少数の親があり、各親には多数の子があります。つまり、フラット・ディメンションには多数のメンバーと少数のレベルがあります。
データベース・アウトラインに中間レベルを追加すると、複数のフラット・ディメンションを持つアウトラインのパフォーマンスを向上させることができます。
式および計算スクリプト
計算スクリプトで式およびディメンションを慎重にグループ化することで、計算パフォーマンスを大幅に向上させることができます。 このようにして、計算中にEssbaseがデータベース内のデータ・ブロックをできるだけ数回循環するようにできます。
計算スクリプト内のコマンドを並べ替えて、データベースの計算をできるだけ単純にします。 すべての式をデータベース・アウトラインに適用し、デフォルトの計算(CALC ALL)を使用することを検討してください。 このメソッドにより、計算のパフォーマンスが向上する可能性があります。
「ブロック・ストレージ・データベース用の計算スクリプトの開発」および「計算パス」を参照してください。