2017-03-24 1 views
0

이전에 25 초 만에 실행 한 큰 MDX 쿼리가 있습니다. 괜찮 았어. 나는 최근에 아래에 개괄 한 변경을 만들었고 실행 시간은 이제 90 초를 초과합니다.SUM MDX 최적화

비슷한 필터를 수행해야하는 경우 문제가 악화 될뿐입니다. 이 종류의 필터를 MDX에서보다 효율적으로 수행하는 방법에 대한 권장 사항은 무엇입니까?

// My simple aggregation of all hours runs in 25 seconds 
MEMBER [Measures].[Calc_TotalHours] AS 
    ([Measures].[PostedHours] + [Measures].[UnpostedHours]) 

// The same aggregation that excludes a certain type of hours 
MEMBER [Measures].[Calc_TotalHours] AS 
    SUM (-{ [Activity].[ProjectCategoryName].&[Overtime] } 
      , ([Measures].[ActualHours] + [Measures].[TimeSheetHours_Unposted]) 
     ) 

여기서 SUM이 잘못된 기능인지 궁금합니다.

답변

2

맞습니다. Sum() 함수는 큰 세트에 비해 무겁습니다. 사전 집계 된 전체 구성원 재사용을 시도하십시오. 전체 구성원 :

([Activity].[ProjectCategoryName].[All],[Measures].[ActualHours]) 
+ ([Activity].[ProjectCategoryName].[All],[Measures].[TimeSheetHours_Unposted]) 
- ([Activity].[ProjectCategoryName].&[Overtime],[Measures].[ActualHours]) 
- ([Activity].[ProjectCategoryName].&[Overtime],[Measures].[TimeSheetHours_Unposted]) 
+0

Danylo 대단히 감사합니다! 이것은 나의 문제를 해결했고 나에게 무언가 새로운 것을 가르쳤다 - 두 배 whammy! – wh4tshisf4c3