두 가지 종류의 보고서 (보고서 보내기 및 보고서 받기)와 두 가지 역할 수행 차원 (보낸 사람 및 수신기)이 있습니다. 하나의 조직에 대한 각 보고서의 금액을 보낸 사람 /받는 사람별로 비교하려고합니다.LINKMEMBER로 MDX 계산 된 측정 값을 최적화했습니다.
나의 현재 쿼리는 다음과 같습니다
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