2016-06-20 9 views
0

278レコードを表示するには、2分47秒かかりますが、クエリを最適化する方法はありません。MDX:このクエリ最適化

SELECT {[Measures].[Mins0] , 
     [Measures].[Mins10] , 
     [Measures].[Mins20] , 
     [Measures].[MinsAbove20] , 
     [Measures].[CCMPatientCnt] } ON COLUMNS , 

NONEMPTY(([DimManagedPopulation].[ManagedPopulationKey].[ManagedPopulationKey], 
      [DimManagedPopulation].[ManagedPopulationName].[ManagedPopulationName]), 
     [Measures].[CCMPatientCnt]) 
ON rows FROM [NavigateCube] 
WHERE ([DimAnchorDate].[Date Key].&[20160331]); 
+0

は、これらの措置のいずれかが計算されていますか?私はNONEMPTYから名前を削除し、CURRENTMEMBERプロパティ( 'ManagedPopulationName')で計算されたメンバーを追加します – mxix

+0

@mxix :)提案のおかげで、私は現在のメンバーを試して、それはより良いパフォーマンスを提供します。ありがとう – Deepthi

+0

私はこれがカウントだと思いますか? '[Measures]。[CCMPatientCnt]' ...カウントとユニークなカウントはolapでは決して素早くありません。 – whytheq

答えて

0

何かを示唆することは困難ですが、次のコードを試してみて結果を報告してくださいすることができますか?また

SELECT 
{ 
    [Measures].[Mins0] , 
    [Measures].[Mins10] , 
    [Measures].[Mins20] , 
    [Measures].[MinsAbove20] , 
    [Measures].[CCMPatientCnt] 
} 
ON COLUMNS , 
NONEMPTY(
    (
     [DimManagedPopulation].[ManagedPopulationKey].[ManagedPopulationKey], 
     [DimManagedPopulation].[ManagedPopulationName].[ManagedPopulationName] 
    ), 
    ([Measures].[CCMPatientCnt], [DimAnchorDate].[Date Key].&[20160331]) 
) 
ON rows 
FROM [NavigateCube] 
WHERE ([DimAnchorDate].[Date Key].&[20160331]); 
0

それはWITH句に行のセットを移動するために役立つかもしれない:

WITH 
    SET [PopSet] AS 
    NonEmpty 
    (
     (
     [DimManagedPopulation].[ManagedPopulationKey].[ManagedPopulationKey] 
     ,[DimManagedPopulation].[ManagedPopulationName].[ManagedPopulationName] 
    ) 
    ,(
     [Measures].[CCMPatientCnt] 
     ,[DimAnchorDate].[Date Key].&[20160331] 
    ) 
    ) 
SELECT 
    { 
    [Measures].[Mins0] 
    ,[Measures].[Mins10] 
    ,[Measures].[Mins20] 
    ,[Measures].[MinsAbove20] 
    ,[Measures].[CCMPatientCnt] 
    } ON COLUMNS 
,[PopSet] ON ROWS 
FROM [NavigateCube] 
WHERE 
    [DimAnchorDate].[Date Key].&[20160331];