Tuesday, March 20, 2012

Performance problem MDX, dependent on location in the code

Hello!

I have MDX in my cube in the tab Calculation. The same MDX perform very differently dependent on where it is located in the code.

Example:

This is in the beginning:

CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[5111 Sales of Goods33] AS

Aggregate({[Account].[AccountOGIS].[OGIS4Digit].&[T]&[5]&[51]&[511]&[5111]})

,FONT_FLAGS = '1';

And this is in the middle:

CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[5111 Sales of Goods22] AS Aggregate({[Account].[AccountOGIS].[OGIS4Digit].&[T]&[5]&[51]&[511]&[5111]})

,FONT_FLAGS = '1';

[5111 Sales of Goods22]is very slow.

[5111 Sales of Goods33] is a little bit slower than select [Account].[AccountOGIS].[OGIS4Digit].&[T]&[5]&[51]&[511]&[5111]from the hiearki.

Why is it like this?

How do I solve my performance problem?

Look forward to any solution.

Best regards,

Tina

Hello!

I give a new example (This is all that exists in my MDX):

CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[5111 Sales of Goods] AS

Aggregate({[Account].[AccountOGIS].[OGIS4Digit].&[T]&[5]&[51]&[511]&[5111]}

)

,FONT_FLAGS = '1';

CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[520 Subtotal ; Production] AS

Aggregate({ [Account].[AccountOGIS].[OGIS3Digit].&[T]&[5]&[52]&[520]}

* {[CostCenter].[OGIS CostCenter Id Name].&[1000]})

, FONT_FLAGS = '1';

CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[5112 Income Service] AS

Aggregate({[Account].[AccountOGIS].[OGIS4Digit].&[T]&[5]&[51]&[511]&[5112]})

,FONT_FLAGS = '1';

[5111 Sales of Goods] is fast.

[520 Subtotal ; Production] and [5112 Income Service] is slow.

[5112 Income Service] becomes slow when it is located after [520 Subtotal ; Production].

[520 Subtotal ; Production] seems to bee slow due to it use two diffrent dimensions.

Why is [5112 Income Service] slow when it is located after [520 Subtotal ; Production]?

Best regards,

Tina

|||

Hello again!

I get no answers, but I don't give up, here comes additional information:

The MDX in the Cube (it exists only this code):

CALCULATE;

CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[?5111 Sales of Goods] AS

--Aggregate({[Account].[AccountOGIS].[OGIS4Digit].&[T]&[5]&[51]&[511]&[5111]}

{[Account].[AccountOGIS].[OGIS4Digit].&[T]&[5]&[51]&[511]&[5111]}

,FONT_FLAGS = '1';

CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[?5112 Income Service] AS

Aggregate({[Account].[AccountOGIS].[OGIS4Digit].&[T]&[5]&[51]&[511]&[5112]})

,FONT_FLAGS = '1';

Query 1 - Very fast:
SELECT { { { [Time].[Time].[Year].&[2006], [Time].[Time].[Year].&[2007] } * { [Version].[Version].[Actual], [Version].[Version].[Budget] } } } ON COLUMNS ,

NON EMPTY { { { DESCENDANTS( [Customer].[CustomerCountry].[All Customer Country], [Customer].[CustomerCountry].[Country] ) } * { DESCENDANTS( [Customer].[CustomerGroup].[All Customer Group], [Customer].[CustomerGroup].[Group Omya] ) } * { DESCENDANTS( [Product].[ProductGroup].[All ProductGroup], [Product].[ProductGroup].[Product] ) } } } ON ROWS

FROM [Complete]

WHERE ( [Account].[AccountOGIS].[?5111 Sales of Goods], [Measures].[Amount] )

CELL PROPERTIES VALUE, FORMATTED_VALUE, CELL_ORDINAL, ACTION_TYPE

Query 2 - Very Slow:

SELECT { { { [Time].[Time].[Year].&[2006], [Time].[Time].[Year].&[2007] } * { [Version].[Version].[Actual], [Version].[Version].[Budget] } } } ON COLUMNS ,

NON EMPTY { { { DESCENDANTS( [Customer].[CustomerCountry].[All Customer Country], [Customer].[CustomerCountry].[Country] ) } * { DESCENDANTS( [Customer].[CustomerGroup].[All Customer Group], [Customer].[CustomerGroup].[Group Omya] ) } * { DESCENDANTS( [Product].[ProductGroup].[All ProductGroup], [Product].[ProductGroup].[Product] ) } } } ON ROWS

FROM [Complete]

WHERE ( [Account].[AccountOGIS].[?5112 Income Service], [Measures].[Amount] )

CELL PROPERTIES VALUE, FORMATTED_VALUE, CELL_ORDINAL, ACTION_TYPE

(The Queries are created from ProClarity).

If I switch place between CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[5111 Sales of Goods] and CREATE MEMBER CURRENTCUBE.[Account].[AccountOGIS].[520 Subtotal ; Production] then Query 1 becomes very slow and Query 2 becomes very fast. WHY?

Best regards,

Tina N M?rnstam

No comments:

Post a Comment