dbTalk Databases Forums  

Slow running COUNT CROSSJOIN query

microsoft.public.sqlserver.olap microsoft.public.sqlserver.olap


Discuss Slow running COUNT CROSSJOIN query in the microsoft.public.sqlserver.olap forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
joshuairwin@gmail.com
 
Posts: n/a

Default Slow running COUNT CROSSJOIN query - 05-02-2005 , 07:35 PM






I was wondering if anybody had any suggestions about speeding up a
COUNT CROSSJOIN calculated member.

I'm trying to retrieve a Distinct Count on a Distinct Count Measure
([Measures].[Member Id]) and I'm slicing by multiple dimensions and the
query is taking forever (> 3:00 minutes). I was thinking of you using
NONEMPTYCROSSJOIN() but couldn't get the same results. Any other
suggestions would be helpful too.

Here's the calculated member crossjoining distinct count
[Measures].[Member Id] with the Member dimension:

MEMBER [Measures].[Distinct Count Member] AS 'Count(CrossJoin(
{[Measures].[Member Id]}, Descendants([Member].CurrentMember,
[Member].[Member Id])), ExcludeEmpty)', SOLVE_ORDER = 0

Full Query:

--SUM all members that had a claim between 01/01/2004 - 03/31/2004
WITH MEMBER [ClaimsIncurredDate].[All ClaimsIncurredDate].[Aggregation]
AS ' SUM(
{[ClaimsIncurredDate].[Year].&[2004].&[1].&[01].&[20040101]:[ClaimsIncurredDate].[Year].&[2004].&[1].&[01].&[20040131],
[ClaimsIncurredDate].[Year].&[2004].&[1].&[02],
[ClaimsIncurredDate].[Year].&[2004].&[1].&[03].&[20040301]:[ClaimsIncurredDate].[Year].&[2004].&[1].&[03].&[20040331]}
) ', SOLVE_ORDER = 0

--SUM all members that are under 17 based on 03/31/2004
MEMBER [DateOfBirth].[All DateOfBirth].[Aggregation] AS ' SUM(
{[DateOfBirth].[Year].&[1986].&[2].&[04]:[DateOfBirth].[Year].&[1986].&[4].&[12],[DateOfBirth].[Year].&[1987]:[DateOfBirth].[Year].&[2004],[DateOfBirth].[Year].&[2005].&[1].&[01]:[DateOfBirth].[Year].&[2005].&[2].&[05]}
) ', SOLVE_ORDER = 0

--CROSSJOIN against Distinct Count measure Member Id and the Member
dimension
MEMBER [Measures].[Distinct Count Member] AS 'Count(CrossJoin(
{[Measures].[Member Id]}, Descendants([Member].CurrentMember,
[Member].[Member Id])), ExcludeEmpty)', SOLVE_ORDER = 0

SELECT
{ [Measures].[Distinct Count Member] } ON COLUMNS ,

{ [Age].[All Age] } ON ROWS
FROM [GWClaims]
WHERE ( [DateOfBirth].[All DateOfBirth].[Aggregation],
[ClaimsIncurredDate].[All ClaimsIncurredDate].[Aggregation] )


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.