2016-04-17 6 views
0

私はMDXクエリを作成しています。私はいくつかの尺度を選択していますが、選択中はどこにあるのかを2つの事実をクロスジョインしています。私は2000個のユニークなIDを渡しています。クエリを実行して結果を出すのに約20分かかります。CrossJoinを使用しているときのMDXクエリの最適化

次のように文字列操作演算子(+)のないストレートMDXは同じ

SELECT {[Measures].[TOTAL1], [Measures].[TOTAL2], [Measures].[TOAL3]} ON COLUMNS, 
      " + " {TOPCOUNT(FILTER([ID].[Ids].MEMBERS, 
          [ID].CurrentMember > 0), 
           5,[Measures].[TOTAL])} " + "ON ROWS 
    FROM [CHARTS] 
    WHERE({[Date].&[2015-09-01 00:00:00.0]}*{[NUM].[1],[NUM].[10]," 
       + "[NUM].[18],[NUM].[47],[NUM].[52],[NUM].[105],[NUM].[126],[NUM].[392]," 
       + "[NUM].[588],[NUM].[656],[NUM].[995],[NUM].[1005],[NUM].[1010],[NUM].[1061]})"; 

に対するクエリの下に見つけてください:

SELECT 
    { 
    [Measures].[TOTAL1] 
    ,[Measures].[TOTAL2] 
    ,[Measures].[TOAL3] 
    } ON COLUMNS 
,{ 
    TopCount 
    (
     Filter 
     (
     [ID].[Ids].MEMBERS 
     , 
     [ID].CurrentMember > 0 
    ) 
    ,5 
    ,[Measures].[TOTAL] 
    ) 
    } ON ROWS 
FROM [CHARTS] 
WHERE 
    {[Date].&[2015-09-01 00:00:00.0]} 
    * 
    { 
     [NUM].[1] 
    ,[NUM].[10] 
    ,[NUM].[18] 
    ,[NUM].[47] 
    ,[NUM].[52] 
    ,[NUM].[105] 
    ,[NUM].[126] 
    ,[NUM].[392] 
    ,[NUM].[588] 
    ,[NUM].[656] 
    ,[NUM].[995] 
    ,[NUM].[1005] 
    ,[NUM].[1010] 
    ,[NUM].[1061] 
    }; 

あなたは私の異なるパフォーマンスの最適化手法を教えてくださいすることができ同様に。あなたは第三の順序付けパラメータを使用している場合

+0

、またはそれを削除してもよろしいですか? – whytheq

答えて

0

TopCountは遅いです - 最初のデータを注文してから予約購入したばかりの2つのパラメータでトップカウントに設定養うために良いです:ヘルプ下記の私の提案をしました

WITH 
    SET [S0] AS 
    Filter 
    (
     [ID].[Ids].MEMBERS 
    , 
     [ID].CurrentMember > 0 
    ) 
    SET [S1] AS 
    Order 
    ( 
     [S0] 
    ,[Measures].[TOTAL] 
    ,BDESC 
    ) 
    SET [S2] AS 
    TopCount 
    (
     [S1] 
    ,5 
    ) 
SELECT 
    { 
    [Measures].[TOTAL1] 
    ,[Measures].[TOTAL2] 
    ,[Measures].[TOAL3] 
    } ON COLUMNS 
,[S2] ON ROWS 
FROM [CHARTS] 
WHERE 
    {[Date].&[2015-09-01 00:00:00.0]} 
    * 
    { 
     [NUM].[1] 
    ,[NUM].[10] 
    ,[NUM].[18] 
    ,[NUM].[47] 
    ,[NUM].[52] 
    ,[NUM].[105] 
    ,[NUM].[126] 
    ,[NUM].[392] 
    ,[NUM].[588] 
    ,[NUM].[656] 
    ,[NUM].[995] 
    ,[NUM].[1005] 
    ,[NUM].[1010] 
    ,[NUM].[1061] 
    }; 
関連する問題