MDX最適化プロパティ
最適化プロパティを使用すると、式および計算済メンバーのパフォーマンスと、それらに依存する問合せのパフォーマンスを向上させることができます。
最適化プロパティは、式および計算済メンバーを持つアウトライン・メンバーにのみ適用されます。 保管されたメンバーはこれらのプロパティに関連付けられていません。
NONEMPTYMEMBERおよびNONEMPTYTUPLEプロパティを使用すると、EssbaseのMDXで、#MISSINGデータのみを含む非分散値に対する式の実行をスキップしながら、大規模なメンバーまたはタプルのセットを問い合せることができます。
大きなセットは非常に疎になる傾向があるため、入力メンバー(#MISSING以外の値を持つ)には少数のメンバーのみが関与し、戻されます。 その結果、計算済メンバーおよび式でNONEMPTYMEMBERおよびNONEMPTYTUPLEを使用すると、メモリー・リソースが節約され、特に同時ユーザー環境でのスケーラビリティが向上します。
NONEMPTYMEMBER
NONEMPTYMEMBER nonempty_member_list
ここで、nonempty_member_listは、式または計算済メンバーと同じディメンションのカンマ区切りのメンバー名または計算済メンバー名です。
計算済メンバーまたは式の先頭で単一のNONEMPTYMEMBERプロパティ句を使用して、nonempty_member_listで指定されたメンバーのいずれかが空の場合に式または計算済メンバーの値が空であることをEssbaseに示します。
NONEMPTYTUPLE
NONEMPTYTUPLE "("nonempty_member_list")"
ここで、nonempty_member_listは、それぞれ異なるディメンションのカンマ区切りのメンバー名または計算済メンバー名です。
式に依存するディメンションがnonempty_member_listから省略されている場合、すべてのディメンションが式キャッシュに追加されるわけではないため、間違った結果になる可能性があります。
計算済メンバーまたは式の先頭で単一のNONEMPTYTUPLEプロパティ句を使用して、nonempty_member_listで指定されたタプルのセル値が空の場合に式または計算済メンバーの値が空であることをEssbaseに示します。
例
次の問合せは、Unitsデータが欠落していない現在の月と前の2か月のUnits (パッケージ当たりのアイテム)の合計を表すメンバー[3 Month Units]を計算します。
計算済メンバー[3か月単位]は、過去3か月間に出荷された単位を計算します。 [MTD] (年間で出荷されたユニット数)が空の場合は、年のすべての月のユニット・データが空であるため、過去3か月間の出荷ユニットの合計も空になります。 問合せの行軸が非常に大きく疎であるため、NONEMPTYTUPLEプロパティを使用すると、問合せのパフォーマンスが大幅に向上します。
WITH MEMBER [Measures].[3 Month Units] AS
'
NONEMPTYTUPLE ([Units], [MTD])
Sum(
{
ClosingPeriod(Time.Generations(5), Time.CurrentMember),
Time.CurrentMember.Lag(1),
Time.CurrentMember.Lag(2)
},
Units
)
'
SELECT
{Units, [3 Month Units]} ON COLUMNS,
NON EMPTY
CrossJoin(
Stores.Levels(0).Members,
[Store Manager].Children
)
ON ROWS
FROM Asosamp.Sample
WHERE (Mar);
この問合せは、次のグリッドを返します(結果は切り捨てられます):
表4-20 MDXからの出力グリッドの例
(軸) | パッケージ当たりのアイテム数 | 3 か月単位 |
---|---|---|
(017589、Carrie) | 610 | 1808 |
(020408, Debra) | 584 | 1778 |
(020486, Kalluri) | 551 | 1670 |
(047108、Kimberley) | 593 | 1723 |
(051273, Madhukar) | 541 | 1642 |
(056098, Melisse) | 607 | 1750 |
... | ... | ... |