dbTalk Databases Forums  

MDX performance when result set is big

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


Discuss MDX performance when result set is big in the microsoft.public.sqlserver.olap forum.



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

Default MDX performance when result set is big - 04-12-2005 , 06:33 PM






Hello Everyone,

I have a question about what we should do if the resultset of MDX is big
like (20000-30000) rows with 5-7 columns. The query takes avg. of 7-8 sec to
bring this much data. Can anyone say any performance improvements in such a
deal or it is just too much data the query is bringing. Will partioning the
cub help here or the design is bad becuase of which so much data is needsd to
be sent to the application.

Thanks and regards

Reply With Quote
  #2  
Old   
David Botzenhart
 
Posts: n/a

Default Re: MDX performance when result set is big - 04-13-2005 , 09:25 PM






Hi Vicky,
Its hard to say what is the slowest part of your design without knowing more
about it. Network speed will be a consideration, how long the front end
takes to render the data will also be a consideration. Do you have any
calculated members that will take time to calculate on the client machine,
this typically is the biggest bottleneck.

The usuall response with such large result sets is that a user can't consume
that many rows, so you need to look at if you really need to return that
many.

David

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

Quote:
Hello Everyone,

I have a question about what we should do if the resultset of MDX is big
like (20000-30000) rows with 5-7 columns. The query takes avg. of 7-8 sec
to
bring this much data. Can anyone say any performance improvements in such
a
deal or it is just too much data the query is bringing. Will partioning
the
cub help here or the design is bad becuase of which so much data is needsd
to
be sent to the application.

Thanks and regards



Reply With Quote
  #3  
Old   
David Botzenhart
 
Posts: n/a

Default Re: MDX performance when result set is big - 04-19-2005 , 09:01 PM



Hi Vicky,

If it grows by that much, how many rows are in your fact table. How many in
the dimensions? The dimensions will still play a big part in the amount of
data that comes back to the client, if your MDX queries at the leaf level of
each of the dimension the query could be bringing back a very large cell
set. Remember PTS tries to bring back more than you actually need in
members.

Partitioning will help if you are querying just a specific date or a
specific member that you will slice by. If you have to go across all
partitions then it wouldn't have much effect on the query.

Star VS Snowflake won't have much difference in query performance, just
processing performce.

Do you have member properties and do you access them during the query?
Virtual Dimensions?

Why are you trying to pull back such a large result set? What are you doing
with the query?

SQL vs OLAP - remember the performance gain of OLAP is in its
preaggregation. If there isn't any aggs to help cover the query then the
caluclations have to be calucated on the fly. Other then that there are
other things that OLAP gives such as the joins don't get in the way as far
as performance. But if you are retrieving a large result set the amount of
data being sent to the client is restricted by the network performance. What
kind of connection is it?

Have you looked at the Peformance Tuning Whitepaper by Dave Wickert?

David


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

Quote:
Hello David,

There is no calculated member in the MDX. Its just that the result set are
genrally big as this result set is plugged into the Analysis engine of our
application which needs to do regression and assoctaion on it and then
prepare the output. My bottleneck is that the cube itself is huge not
beacuse
of any dimension but fact as everyday it grows by 30000-50000 rows and
beacuse of which for given timeframe the MDX returns a big set of data. It
takes about 12-15 sec for MDX to execute as it retuns like
StoreID*DateID*TimeID*ClipID*4 measures
My question to you will be whether converting a star to snowflake will
increase or decrease the performance, partitioning on month will help (I
tried on month but in decresed the performance more), or its just that too
much rows returned by MDX and i should find a way to reduce the rows. But
the
only purpose we are using cubes as i was under the impression that MDX can
handle large datasets rather then SQL.

Thanks for your response
"David Botzenhart" wrote:

Hi Vicky,
Its hard to say what is the slowest part of your design without knowing
more
about it. Network speed will be a consideration, how long the front end
takes to render the data will also be a consideration. Do you have any
calculated members that will take time to calculate on the client
machine,
this typically is the biggest bottleneck.

The usuall response with such large result sets is that a user can't
consume
that many rows, so you need to look at if you really need to return that
many.

David

"vicky" <vicky (AT) discussions (DOT) microsoft.com> wrote in message
news:84848B8D-B7D8-4A84-827C-4FE1DF2C323B (AT) microsoft (DOT) com...
Hello Everyone,

I have a question about what we should do if the resultset of MDX is
big
like (20000-30000) rows with 5-7 columns. The query takes avg. of 7-8
sec
to
bring this much data. Can anyone say any performance improvements in
such
a
deal or it is just too much data the query is bringing. Will partioning
the
cub help here or the design is bad becuase of which so much data is
needsd
to
be sent to the application.

Thanks and regards






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.