1

2 種類のレポート (レポートの送信とレポートの受信) と、2 つのロールプレイング ディメンション (送信者と受信者) があります。送信者/受信者ごとに、ある組織の各レポートの金額を比較しようとしています。

私の現在のクエリは次のとおりです。

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 のメジャーがある実際のクエリでは。

このクエリを何らかの方法で最適化することは可能ですか?

4

2 に答える 2