Quantcast
Channel: SQL Server Analysis Services forum
Viewing all articles
Browse latest Browse all 14337

Performance Issue on MDX Code

$
0
0

Hi Friends,

I had a performance issue on my Query it was running about 4 min to get the result.

If I don't mention this  measures.VUNStartedwithTimePeriod

  it was giving result just just in 2 seconds 

I thought the problem is I was cross joining with two dates though I need to do this to apply selected dates on the measure.

Can anyone guide me how can I avoid this performance issue.? thanks in advance

WITH
SET dates_forVoidLetActualEndDate AS 
	{Linkmember(StrToMember('[Dim_Date].[CalendarYearByMonth].[YYYYMMDD].&[2013-05-10T00:00:00]', constrained), 
		[VoidProgressLETActualEndDate].[CalendarYearByMonth]):NULL }
SET dates_forVoidLetActualEndDateInclNull AS
NONEMPTY(
          {dates_forVoidLetActualEndDate
          ,[VoidProgressLETActualEndDate].[CalendarYearByMonth].[YYYYMMDD].&[1900-01-01T00:00:00]}
          ,[Measures].[VoidCount]
          )
SET dates_forVoidEOTStartDate AS
	NONEMPTY({[VoidProgressEOTStartDate].[CalendarYearByMonth].[YYYYMMDD].&[1900-01-01T00:00:00]:
	 Linkmember(StrToMember('[Dim_Date].[CalendarYearByMonth].[YYYYMMDD].&[2013-05-10T00:00:00]', constrained), 
		[VoidProgressEOTStartDate].[CalendarYearByMonth]) 
		},[Measures].[VoidCount])
MEMBER Measures.VoidCountWithNoEndDateInPeriod AS 
     AGGREGATE (dates_forVoidEOTStartDate
                 *
                dates_forVoidLetActualEndDateInclNull
                ,[Measures].[VoidCount])
--------------------------------------------------------------		
 SET dates_forVoidLetActualEndDateVUN AS 
	NONEMPTY({Linkmember(StrToMember('[Dim_Date].[CalendarYearByMonth].[YYYYMMDD].&[2013-05-10T00:00:00]', constrained), 
		[VoidProgressLETActualEndDate].[CalendarYearByMonth]):NULL },[Measures].[CountVUNStarted])
SET dates_forVoidLetActualEndDateInclNullVUN AS
NONEMPTY(
          {dates_forVoidLetActualEndDateVUN
          ,[VoidProgressLETActualEndDate].[CalendarYearByMonth].[YYYYMMDD].&[1900-01-01T00:00:00]}
          ,[Measures].[CountVUNStarted]
          )
SET dates_forVoidEOTStartDateVUN  AS
	NONEMPTY({[VoidProgressEOTStartDate].[CalendarYearByMonth].[YYYYMMDD].&[1900-01-01T00:00:00]:
	 Linkmember(StrToMember('[Dim_Date].[CalendarYearByMonth].[YYYYMMDD].&[2013-05-10T00:00:00]', constrained), 
		[VoidProgressEOTStartDate].[CalendarYearByMonth]) 
		},[Measures].[CountVUNStarted])		
MEMBER measures.VUNStartedwithTimePeriod AS
     AGGREGATE ({dates_forVoidLetActualEndDateInclNullVUN
                  * dates_forVoidEOTStartDateVUN }
                ,[Measures].[CountVUNStarted]) 
MEMBER measures.WithVun AS 
	[Measures].[CountVUNStarted]
	----------------------------------------------	
SET VPRNsEndingInPeriod AS
	[VoidProgress].[VPRN].[ALL].children

SET VPRNsLessThan20DaySET AS 
	Filter (
		[VoidProgress].[VPRN].[ALL].children
		, measures.VoidLength< 21)

SET VPRNs21To30DaySET AS 
	Filter (
		[VoidProgress].[VPRN].[All].children
		, measures.VoidLength >= 21 AND measures.VoidLength < 31)

SET VPRNs31To126DaySET AS 
	Filter (
		[VoidProgress].[VPRN].[All].children
		, measures.VoidLength >= 31 AND measures.VoidLength < 127)

SET VPRNs126TO252DaySET AS
	Filter (
		[VoidProgress].[VPRN].[All].children
		, measures.VoidLength >= 126 AND measures.VoidLength < 253)

SET VPRNs253To504DaySET AS
	Filter (
		    [VoidProgress].[VPRN].[All].children
		, measures.VoidLength >= 253 AND measures.VoidLength <= 504)

SET VPRNsGreaterThan504DaySET AS
	Filter (
		    [VoidProgress].[VPRN].[All].children
		, measures.VoidLength > 504)

MEMBER [VoidProgress].[VPRN].[<21(In target)] 
	AS aggregate(VPRNsLessThan20DaySET, measures.currentmember)

MEMBER [VoidProgress].[VPRN].[21-30(6wks)] 
	AS aggregate(VPRNs21To30DaySET, measures.currentmember)

MEMBER [VoidProgress].[VPRN].[31-126(6wks-6mths)] 
   AS aggregate(VPRNs31To126DaySET, measures.currentmember)

//member [VoidProgress].[VPRN].[51-100] 
//	as aggregate(VPRNs51To100DaySET, measures.currentmember)

MEMBER [VoidProgress].[VPRN].[126-252(6-12mths)] AS 
	aggregate(VPRNs126To252DaySET, measures.currentmember)

 MEMBER [VoidProgress].[VPRN].[253-504(1-2yrs)] AS 
	aggregate(VPRNs253To504DaySET, measures.currentmember)

MEMBER [VoidProgress].[VPRN].[>504(>2yrs)] AS 
	aggregate(VPRNsGreaterThan504DaySET, measures.currentmember)

MEMBER [VoidProgress].[VPRN].[Total] AS
	aggregate(VPRNsEndingInPeriod, measures.currentmember)

MEMBER measures.PercentageDateBand AS
	(
		([VoidProgress].[VPRN].currentmember, measures.VoidCountWithNoEndDateInPeriod) 
		/
		([VoidProgress].[VPRN].[Total], measures.VoidCountWithNoEndDateInPeriod)
	), Format_String = "Percent"


MEMBER measures.VavOnly AS 
	measures.VoidCountWithNoEndDateInPeriod - [Measures].[CountVUNStarted]

SELECT
{
 Measures.VoidCountWithNoEndDateInPeriod
 ,measures.WithVun
 --,measures.VUNStartedwithTimePeriod 
} 
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME

ON 0,
{
[VoidProgress].[VPRN].[<21(In target)] 
,[VoidProgress].[VPRN].[21-30(6wks)]  
,[VoidProgress].[VPRN].[31-126(6wks-6mths)] 
,[VoidProgress].[VPRN].[126-252(6-12mths)] 
,[VoidProgress].[VPRN].[253-504(1-2yrs)] 
,[VoidProgress].[VPRN].[>504(>2yrs)] 
--,[VoidProgress].[VPRN].[>500] 
,[VoidProgress].[VPRN].[Total]

} ON 1
FROM
(          SELECT           
           [Dim_PropertyType].[PropertyTypeDescription].&[Dwelling]
               ON COLUMNS



  FROM [Cube]
)


Viewing all articles
Browse latest Browse all 14337

Trending Articles