dbTalk Databases Forums  

MDX Tuning Advice NonEmptyCrossjoin

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


Discuss MDX Tuning Advice NonEmptyCrossjoin in the microsoft.public.sqlserver.olap forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Jason
 
Posts: n/a

Default MDX Tuning Advice NonEmptyCrossjoin - 01-23-2004 , 02:56 PM






I'm have a MDX quey that should return about 60,000 rows with 83 columns. Mostly consisting of calculated measures

I have the following nonemptycrossjoi

NonEmptyCrossJoin
[DepartureDate].[Standard].[Date Value].Members --1829 member
,[ProcessDate].[Standard].[Date Value].Members -- 1829 member
,[Flight].[Standard].[Flight Number].Members -- 760 member
,[Aircraft].[Standard].[Iataaircraft Code].Members --7 member
,[DaysPrior].[Standard].Members --339 member
,{[Measures].[Authorization Level]
, 5

This performs extremely slow. I have a T-SQL based solution that takes about 30 minutes to calculate all column
and populate a table. The server is a 2way p3 2ghz with 2gb of ra

The MDX solution runs for about 3hrs before I cancel it

I have not done much in the way of optimizing the MDX server confi

Is there anything I can do to tune the query? or am I hitting a HW limitation
Any suggestions?

Reply With Quote
  #2  
Old   
uswine
 
Posts: n/a

Default Re: MDX Tuning Advice NonEmptyCrossjoin - 01-24-2004 , 12:54 AM






You might try creating a separate identical cube with only a single measure
(distinct count) that is a unique key for your data set. Ideally
aggregations should be at the top level only, but it works at the lowest
level ... just a little longer for queries. Create a new virtual cube over
the 2 cubes using the distant count cube for the totals with the values in
the original cube. This works fantastic on a similar set of aviation data I
manage with 17 million records. The distinct count cube has 58,000 unique
keys and takes about 15 min to process on a dual Pentium server. To create
the unique key I concatenate the combined values of various dimension
members into a long string that forms a unique key in a separate table. I
use an identity field as the index and create a new dimension from this
table that can now be used as a distinct count measure in the new cube. If
you have more than 64,000 unique keys you need to establish an interim level
of clustered keys to get around the analysis server limitations.





"Jason" <anonymous (AT) discussions (DOT) microsoft.com> wrote

Quote:
I'm have a MDX quey that should return about 60,000 rows with 83 columns.
Mostly consisting of calculated measures.

I have the following nonemptycrossjoin

NonEmptyCrossJoin(
[DepartureDate].[Standard].[Date Value].Members --1829 members
,[ProcessDate].[Standard].[Date Value].Members -- 1829 members
,[Flight].[Standard].[Flight Number].Members -- 760 members
,[Aircraft].[Standard].[Iataaircraft Code].Members --7 members
,[DaysPrior].[Standard].Members --339 members
,{[Measures].[Authorization Level]}
, 5)

This performs extremely slow. I have a T-SQL based solution that takes
about 30 minutes to calculate all columns
and populate a table. The server is a 2way p3 2ghz with 2gb of ram

The MDX solution runs for about 3hrs before I cancel it.

I have not done much in the way of optimizing the MDX server config

Is there anything I can do to tune the query? or am I hitting a HW
limitation?
Any suggestions?



Reply With Quote
  #3  
Old   
Martin Mason
 
Posts: n/a

Default Re: MDX Tuning Advice NonEmptyCrossjoin - 01-24-2004 , 06:19 AM



Calculated members cannot be used with the NonEmptyCrossJoin function. If
[Measures].[Authorization Level] is a simple formula, {[1]+[2]}, you could
rewrite the {[Measures].[Authorization Level]} as
{[Measures].[1],[Measures].[2]}. If it's not, your may have to use the
Filter function instead.

Jason" <anonymous (AT) discussions (DOT) microsoft.com> wrote

Quote:
I'm have a MDX quey that should return about 60,000 rows with 83 columns.
Mostly consisting of calculated measures.

I have the following nonemptycrossjoin

NonEmptyCrossJoin(
[DepartureDate].[Standard].[Date Value].Members --1829 members
,[ProcessDate].[Standard].[Date Value].Members -- 1829 members
,[Flight].[Standard].[Flight Number].Members -- 760 members
,[Aircraft].[Standard].[Iataaircraft Code].Members --7 members
,[DaysPrior].[Standard].Members --339 members
,{[Measures].[Authorization Level]}
, 5)

This performs extremely slow. I have a T-SQL based solution that takes
about 30 minutes to calculate all columns
and populate a table. The server is a 2way p3 2ghz with 2gb of ram

The MDX solution runs for about 3hrs before I cancel it.

I have not done much in the way of optimizing the MDX server config

Is there anything I can do to tune the query? or am I hitting a HW
limitation?
Any suggestions?



Reply With Quote
  #4  
Old   
Jason
 
Posts: n/a

Default Re: MDX Tuning Advice NonEmptyCrossjoin - 01-26-2004 , 12:21 PM



[Measures].[Authorization Level
is a normal measure so that is not an issue in this case; but good to know for future use

The cube processes fairly quickly, It is the query response that is the main proble
It runs in about 4 secs if I filter it down to just one day. It is when i try and query for all 338 processdates that it goes off into a deep sleep.




Reply With Quote
  #5  
Old   
Deepak Puri
 
Posts: n/a

Default Re: MDX Tuning Advice NonEmptyCrossjoin - 01-26-2004 , 08:23 PM



Since the query runs in only 4 secs for a single [DaysPrior] member,
which works out to 23 mins for 339 members, maybe nesting the cross-join
will speed it up?

Quote:
Generate([DaysPrior].[Standard].Members,
NonEmptyCrossJoin(
[DepartureDate].[Standard].[Date Value].Members,
[ProcessDate].[Standard].[Date Value].Members,
[Flight].[Standard].[Flight Number].Members,
[Aircraft].[Standard].[Iataaircraft Code].Members,
{[DaysPrior].CurrentMember},
{[Measures].[Authorization Level]},5))

Quote:

- Deepak

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!


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.