У меня есть два вида отчетов (отправка отчетов и получение отчетов) и два ролевых размера (отправители и приемники). Я пытаюсь сравнить суммы из каждого отчета для одной организации с помощью отправителей/получателей.Оптимизация MDX Расчетная величина с LINKMEMBER
Мой текущий запрос:
with member [Measures].[SentAmount] as ([Receiver].[Code].&[XXX],[Measures].[Sent])
member [Measures].[ReceivedAmount_Temp] as
(
[Sender].[Code].&[XXX],
[Measures].[Received]
)
member [Measures].[ReceivedAmount] as
(
LINKMEMBER
(
[Sender].[Code].CURRENTMEMBER,[Receiver].[Code]
),
root([Sender]),
[Measures].[ReceivedAmount_Temp]
)
SELECT
{
[Measures].[SentAmount],
[Measures].[ReceivedAmount]
} ON COLUMNS,
NON EMPTY
{ (
[Sender].[Code].[Code].ALLMEMBERS
*[Sender].[Name].[Name].ALLMEMBERS
)} FROM MyCube
Результат является корректным, но время выполнения очень долго. Особенно по реальному запросу, где у меня есть 15-20 мер.
Можно ли каким-либо образом оптимизировать этот запрос?
Можете вы изменить куб, или это будет оптимизация MDX для существующего куба? – FrankPl
Предпочтительно не менять существующий куб. Но если оптимизация MDX невозможна, я могу внести изменения. – zlatkovin
К сожалению, я до сих пор не могу найти решение. Буду признателен за любую помощь. – zlatkovin