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 ответа
Также это может помочь переместить набор строк в 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];
Трудно что-то предложить, но не могли бы вы попробовать следующий код и сообщить результат?
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]);