MDX:此查询优化

时间:2016-06-20 14:04:03

标签: ssas mdx

用于显示278条记录,需要2分47秒才能优化查询。

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]);

2 个答案:

答案 0 :(得分: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]);

答案 1 :(得分: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];