疎メンバーの組合せのグループ化
この項は、集約ストレージ・データベースには適用されません。
パフォーマンスを向上させる最も効果的な方法は、データベースの読取りまたは書込み中にEssbaseが実行する必要があるディスクI/Osの数を最小限に抑えることです。 Essbaseではブロックごとにデータ・ブロックがロードされるため、物理ブロック編成に対応するようにソース・データを編成すると、Essbaseで実行する必要がある物理ディスクI/Osの数が減少します。
疎ディメンションの同じ一意の組合せを持つレコードがグループ化されるようにデータ・ソースを配置します。 この配置は、データベース内のブロックに対応します。
この章の例では、この戦略に従ってデータを編成する方法を示します。 これらの例では、次に説明するように、Sample.Basicデータベースのサブセットを使用します:
表32-1 例のディメンションと値
疎、非属性ディメンション | 密ディメンション |
---|---|
Scenario (Budget, Actual) |
Measures (Sales, Margin, COG, Profit) |
Product (Cola, Root Beer) |
年(Jan、Feb) |
Market (Florida, Ohio) |
ノート:
データは属性ディメンションにロードされないため、疎ですが、この説明には関係ありません。
次のデータ・ソースについて考えてみます。 疎ディメンション・メンバーの組合せでグループ化されていないため、このデータは最適化のためにソートされていません。 Essbaseは各レコードを読み取るため、疎ディメンションの異なるメンバーを処理する必要があります。
Jan
Actual Cola Ohio Sales 25
Budget "Root Beer" Florida Sales 28
Actual "Root Beer" Ohio Sales 18
Budget Cola Florida Sales 30
Essbaseではブロックのかわりに4つにアクセスするため、このデータのロードは遅くなります。
同じSample.Basicデータベースに対して最適に編成されたデータ・ソースは、疎ディメンション・メンバーの一意の組合せでソートされた様々なレコードを表示: Actual -> Cola -> Ohio。 Essbaseは、これらのレコードをロードするために1つのブロックにのみアクセスします。
Actual Cola Ohio Jan Sales 25
Actual Cola Ohio Jan Margin 18
Actual Cola Ohio Jan COGS 20
Actual Cola Ohio Jan Profit 5
レコードごとに多数のセルをロードするデータ・ソースを使用できます。 レコードが一意の疎ディメンション・メンバーの組合せでグループ化されていることを確認してください。 次に、複数の値を指定するレコード内のディメンションが密ディメンションになるようにレコードを並べ替えます。
次のデータ・ソースの例では、ヘッダー・レコードを使用してMeasuresディメンションのメンバーである密を識別します。 データは、最初に密ディメンションYearのメンバーでソートされ、他のディメンションのメンバーで階層的にグループ化されます。 各レコードにMeasuresディメンションの複数の値が指定されています。
Sales Margin COG Profit
Jan Actual Cola Ohio 25 18 20 5
Jan Actual Cola Florida 30 19 20 10
Jan Actual "Root Beer" Ohio 18 12 10 8
Jan Actual "Root Beer" Florida 28 18 20 8
この例では、見出しと最初のデータ行に2つの行が必要です。前の例では、同じデータに4つの行が必要です。
ロード前のソース・ファイルでのデータの配置の詳細は、「ルール・ファイルを必要としないデータソース」を参照してください。