To improve MDX Query performance use NonEmpty Function and use filter instead of IIF( IS NULL)

To improve MDX Query performance use NonEmpty Function and use filter instead of IIF( IS NULL) Function and  in Calculated measure


WITH MEMBER [TEST1] AS SUM(LastPeriods(12,[dimTimeDimension].[Month].&[2009]&[12]), [Measures].[Gross Written Premium])
MEMBER [TEST2] AS SUM(LastPeriods(12,[dimTimeDimension].[Month].&[2008]&[12]), [Measures].[Gross Written Premium])
MEMBER [TEST3] AS SUM(LastPeriods(12,[dimTimeDimension].[Month].&[2007]&[12]), [Measures].[Gross Written Premium])
MEMBER [TEST4] AS SUM(LastPeriods(12,[dimTimeDimension].[Month].&[2006]&[12]), [Measures].[Gross Written Premium])
MEMBER [TEST5] AS SUM(LastPeriods(12,[dimTimeDimension].[Month].&[2005]&[12]), [Measures].[Gross Written Premium])
MEMBER [R12 LR] AS ([Measures].[R12 Claims Incurred WO IBNR] / [Measures].[R12 Gross Earned Premium])
select { [Measures].[R12 LR] } ON COLUMNS
, TOPCOUNT(filter(NONEMPTY(
[dimCustomerDimension].[Full Name].children * [dimChannelDimension].[Branch].CHILDREN
,[Measures].[R12 LR])
,[TEST1] >15000 AND [TEST2] >15000 AND [TEST3] >15000 AND [TEST4] >15000 AND [TEST5] >15000
AND ([Measures].[YTD GWP Growth Percentage]> 0  or [Measures].[YTD Loss Ratio] > 0 or [Measures].[Loss Ratio] > 0  
or [Measures].[YTD Loss Ratio Last Year] > 0 OR [Measures].[R12 Gross Earned Premium] >0)
),20,[Measures].[R12 LR])

ON ROWS FROM [cubePLByCustomerFact] WHERE ([dimTimeDimension].[Month].&[2009]&[12])

Comments

Popular posts from this blog

SSRS Report Design: Best Practices

SSAS OLAP Design - Best Practices

Enable Usage-Based Optimization in SSAS