Possible to shrink 125 mb cellset base on topcount 51 on 2 million row dimension? -
08-06-2003
, 02:04 PM
Hi, I have done all I can to squeeze as much memory out of this app, but
it's still gobbling too much. The culprit is the MDX at the bottom of my
post. The level drilled to just below
[Sales Area].[Area A].[Reg1].[Dist3].[Terr2] contains 2 million customer
rows of which I just want the top 50. If you happen to have a copy of MDX
Solutions by George Spofford, you can see that I have already applied his
ideas from page 301 on optimizing top count with a generate statement. Is
there anything I can do to shrink how much memory this chews up? I am
reading the cellset into a recordset, closing & nulling the cellset, forcing
garbage collection, but the problem is that the 125 mb cellset is just to
huge if too many people try to run this app at the same time. Any ideas?
Much Appreciated,
Glenn
gengelbart at the domain listed below
www.ihsiq.com
WITH MEMBER [Measures].[Custom Sort] as '([Qty Type].[Qty TypeA],
[TimePeriods].[All
TimePeriods].[2003, Period1], [Manager Accounts].[All Manager
Accounts].[SMITH].[Primary].[ABC
Account], [Products].[All Products].[Group A].[Class A],
[Measures].[Qty] )'
select NON EMPTY
Order( {
TopCount( Generate ( { DrillDownMember({[Sales Area].[Area
A].[Reg1].[Dist3].[Terr2]},{[Sales
Area].[Area A].[Reg1].[Dist3].[Terr2]}) }, TopCount ({[Sales
Area].CurrentMember } * {[Qty Type].[Qty
TypeA]}* {[TimePeriods].[All TimePeriods].[2003, Period1]} * {[Manager
Accounts].[All Manager
Accounts].[SMITH].[Primary].[ABC Account]} *{[Products].[All
Products].[Group A].[Class A]},
51,[Measures].[Qty])),51,[Measures].[Qty]),
TopCount( Generate ( { DrillDownMember({[Sales Area].[Area
A].[Reg1].[Dist3].[Terr3]},{[Sales
Area].[Area A].[Reg1].[Dist3].[Terr3]}) }, TopCount ({[Sales
Area].CurrentMember } * {[Qty Type].[Qty
TypeA]}* {[TimePeriods].[All TimePeriods].[2003, Period1]} * {[Manager
Accounts].[All Manager
Accounts].[SMITH].[Primary].[ABC Account]} *{[Products].[All
Products].[Group A].[Class A]},
51,[Measures].[Qty])),51,[Measures].[Qty]),
TopCount( Generate ( { DrillDownMember({[Sales Area].[Area
A].[Reg1].[Dist3].[Terr4]},{[Sales
Area].[Area A].[Reg1].[Dist3].[Terr4]}) }, TopCount ({[Sales
Area].CurrentMember } * {[Qty Type].[Qty
TypeA]}* {[TimePeriods].[All TimePeriods].[2003, Period1]} * {[Manager
Accounts].[All Manager
Accounts].[SMITH].[Primary].[ABC Account]} *{[Products].[All
Products].[Group A].[Class A]},
51,[Measures].[Qty])),51,[Measures].[Qty]),
},[Custom Sort],DESC)
on columns from MainCube |