2014-11-19 2 views
0

мне нужно сравнить каждый элемент в моем 5-мерном выборе в ячейку, которая находится на пересечении всего два размеровРасчетная величина, основанная на нескольких измерениях. Игнорировать некоторые размеры

У меня есть следующий MDX:

WITH MEMBER [measures].[x] AS 
     (
      [dim1].[dim1].[certainDim1_Member] 
      ,[dim2].[dim2].[certainDim2_Member] 
      ,[measures].[a] 
     ) 
SELECT 
    NON EMPTY {[measures].[a], [measures].[x]} ON 0, 
    NON EMPTY { 
        [dim1].[dim1].children 
        *[dim2].[dim2].children 
        *[dim3].[dim3].children 
        *[dim4].[dim4].children 
        *[dim5].[dim5].children 
       } ON 1 
FROM [cubename] 

Проблема заключается в том, что запрос учитывает currentmember dim3, dim4, dim5. и результат искажен.

Когда я пытаюсь это:

WITH MEMBER [measures].[x] AS 
     (
      [dim1].[dim1].[certainDim1_Member] 
      ,[dim2].[dim2].[certainDim2_Member] 
      ,[dim3].[dim3].[all] 
      ,[dim4].[dim4].[all] 
      ,[dim5].[dim5].[all] 
      ,[measures].[a] 
     ) 

запрос умирает 2+ минут из памяти не хватает

в то время как это

WITH MEMBER [measures].[x] AS 
     (
      [dim1].[dim1].[certainDim1_Member] 
      ,[dim2].[dim2].[certainDim2_Member] 
      ,[dim3].[dim3].[all] 
      ,[dim4].[dim4].[all] 
      --,[dim5].[dim5].[all] 
      ,[measures].[a] 
     ) 

возвращает результат в течение 3 секунд.

Я должен использовать все 5 размеров и даже больше.

+0

Я бы подумал, что у вас есть сложная логика агрегации не по умолчанию для вычисления членов «Все» dim 4 и 5 в сценарии вычисления вашего куба. На этот вопрос может быть очень сложно ответить, не зная всех деталей сценария расчета, а также дизайна куба (группы мер, размеры и их отношения). Поэтому я не уверен, что он хорошо подходит для StackOverflow. – FrankPl

+0

от FrankPI MS есть активный форум ssas: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/home?forum=sqlanalysisservices – whytheq

ответ

0

Если вы измените его на совокупность набора кортежей по этой мере, он все еще функционирует?

WITH MEMBER [measures].[x] AS 
    Aggregate(
     {(
      [dim1].[dim1].[certainDim1_Member] 
     ,[dim2].[dim2].[certainDim2_Member] 
     ,[dim3].[dim3].[all] 
     ,[dim4].[dim4].[all] 
     ,[dim5].[dim5].[all] 
     )}, 
     [measures].[a] 
    ) 
Смежные вопросы