ActiveForm: Performance MDX

Post Reply
Mark2007
Posts: 45
Joined: Tue Jan 07, 2014 12:07 pm
OLAP Product: Cognos TM1
Version: PA 2
Excel Version: office 365

ActiveForm: Performance MDX

Post by Mark2007 »

Hi there,
the following Problem:
in a cube, there is a large Dimension, containing Projects (~1.000.000 Elements). Now, I want to built a Report via activeform, where the user can select his Region and gets all his Projects. I'm trying to do this via mdx:

{TM1FILTERBYPATTERN( {TM1SUBSETALL( [dimName] )}, "PD*_C")}

The Performance is pretty slow, I think due to the large Dimension.

Do you have any ideas
- are there differences in Performance between different MDX-functions?

e.g. could "[dimname].[topelement].children" be faster?
etc?

Regards and thanks

Mark
Wim Gielis
MVP
Posts: 3113
Joined: Mon Dec 29, 2008 6:26 pm
OLAP Product: TM1, Jedox
Version: PAL 2.0.9.18
Excel Version: Microsoft 365
Location: Brussels, Belgium
Contact:

Re: ActiveForm: Performance MDX

Post by Wim Gielis »

Hello Mark,

Don't use dynamic subsets on such dimensions.
Use TI to populate a subset in a static way, either at the push of the button, either after updating the dimension.
Best regards,

Wim Gielis

IBM Champion 2024
Excel Most Valuable Professional, 2011-2014
https://www.wimgielis.com ==> 121 TM1 articles and a lot of custom code
Newest blog article: Deleting elements quickly
User avatar
Steve Rowe
Site Admin
Posts: 2415
Joined: Wed May 14, 2008 4:25 pm
OLAP Product: TM1
Version: TM1 v6,v7,v8,v9,v10,v11+PAW
Excel Version: Nearly all of them

Re: ActiveForm: Performance MDX

Post by Steve Rowe »

Just to expand slightly on what Wim is saying.

If you have enough information in the active form to paramaterise your MDX statement then you have enough information to paramaterise a subset reference.
So pre-build the subsets and reference the subset directly in the active form.

If the user only has one option / area of responsibility then you could set that as an attribute of the user and nest it into the subset reference so they don't even need to make a selection.

Then the MDX is not running in line with your report. The pre-build subsets should be static but refreshed via TI on sufficient frequency that they remain updated.
Technical Director
www.infocat.co.uk
User avatar
paulsimon
MVP
Posts: 808
Joined: Sat Sep 03, 2011 11:10 pm
OLAP Product: TM1
Version: PA 2.0.5
Excel Version: 2016
Contact:

Re: ActiveForm: Performance MDX

Post by paulsimon »

Hi

Another major factor in Active Form performance is to take as few columns as possible from the Active Form and the others from Views. I often build special consolidations with random weights to get over the issue of it not retrieving a row if the values cancel each other out. I then just use the column with the consolidation to drive the zero suppression in the active form and find that this is a lot faster.

Recent versions of TM1 do cache the results of MDX expressions, however, I would still agree with previous comments that if you can generate a static subset then it may be faster.

From the sounds of it you may only need a subset per region rather than per user. Then you just need an attribute on the user to give their region. You can get the username via the TM1User function and then retrieve their region subset and then make up the name of the subset.

I would also look at security. Assuming that not all users can see all projects, then this is another way to limit down the list.

I have not had to cope with a dimension this size for a while. It would be interesting to know how security copes as a way of limiting the list of elements vs a subset.

You might also want to consider whether all projects in the dimension are still live. I would guess that with a million projects most are completed. Therefore you could consider a separate cube with only current projects, or a hierarchy in the dimension with only current projects.

Regards

Paul Simon
Post Reply