Page 1 of 1
TI Process Performance Tuning
Posted: Fri Jan 27, 2017 12:34 pm
by aravind.cgns
Hi Team,
I have a simple Turbointegrator Process with 2 dimensions in it, the datasource is CSV file. It has around 600 records but it taking around 23 minutes to execute. Here in one dimension two of its elements are populated by "Subset Picklist". Please suggest me to optimize the execution time.
Thanks,
Aravind.
Re: TI Process Performance Tuning
Posted: Fri Jan 27, 2017 2:42 pm
by lotsaram
aravind.cgns wrote:Please suggest me to optimize the execution time.
Start by providing some shred of relevant information about the dimensions and what the process is doing.
Re: TI Process Performance Tuning
Posted: Fri Jan 27, 2017 3:06 pm
by aravind.cgns
Hi lotsa,
It is an actuals load TI Process which copies data from CSV file to cube. It has two dimensions "Item" and "Item Attributes" the "Item Attributes" dimension has 7 elements out of which two of the element's has attributes which uses "Subset Picklist", It is an simple TIP which loads data from "CSV" file to cube. It takes around 24 minutes to execute.
Thanks,
Aravind
Re: TI Process Performance Tuning
Posted: Fri Jan 27, 2017 3:26 pm
by tomok
The picklist is probably red herring since I think it can only stop people from entering incorrect values through one of the user interfaces, not a TI. The more likely culprit is feeders re-firing as each value is written to the cube. I've seen this happen before in poorly designed feeders. I take it this cube has rules and is feeding something based on "Actuals"?
Re: TI Process Performance Tuning
Posted: Mon Jan 30, 2017 9:23 am
by TrevorGoss
tomok wrote:The picklist is probably red herring since I think it can only stop people from entering incorrect values through one of the user interfaces, not a TI.
You could stop people from entering incorrect values into a Picklist from a TI by using the SCAN function on the Attribute value. The logic would be, if substring is not in the string type return value of the Attrs function, then it is incorrect.
Trev
Re: TI Process Performance Tuning
Posted: Mon Jan 30, 2017 9:55 am
by Steve Rowe
Suggest you post your code as requested.
My bet would be that you have MDX subsets that are being recalculated.
Re: TI Process Performance Tuning
Posted: Mon Jan 30, 2017 11:06 am
by aravind.cgns
Steve there is no MDX subsets. As Tom said i guess the problem would be due to feeders the reason being there auto-generated feeders by performance modeler. The model is link driven, The cube has 5 target links.
Thanks,
Aravind
Re: TI Process Performance Tuning
Posted: Mon Jan 30, 2017 1:08 pm
by tomok
TrevorGoss wrote:tomok wrote:The picklist is probably red herring since I think it can only stop people from entering incorrect values through one of the user interfaces, not a TI.
You could stop people from entering incorrect values into a Picklist from a TI by using the SCAN function on the Attribute value. The logic would be, if substring is not in the string type return value of the Attrs function, then it is incorrect.
Trev
True, you could
add your own custom code, utilizing the data in a picklist cuibe, to stop invalid data in a ti but the fact of just having a picklist on a dimension won't do it, like it will for entering data in the cell manually which was my point. I would be willing to bet everything I own that the OP does not have such custom code in his TI which is why I said the picklist issue was a red herring for his problem.
Re: TI Process Performance Tuning
Posted: Mon Jan 30, 2017 6:44 pm
by PavoGa
Steve there is no MDX subsets. As Tom said i guess the problem would be due to feeders the reason being there auto-generated feeders by performance modeler. The model is link driven, The cube has 5 target links.
The keywords here may be performance modeler

. I think tomok's suggestion to check the feeders is the best place. An additional question: are you writing string or numeric data or both to the cube? If you happen to be overwriting string data used for a feeder, that can cause the feeders to re-fire.
One suggestion would be to deactivate the rules in the prolog and in the epilog reload them.
Re: TI Process Performance Tuning
Posted: Mon Jan 30, 2017 8:54 pm
by Wim Gielis
Maybe Performance Modeler annoyingly added a Feedstrings statement at the top of the rules statements ?
Re: TI Process Performance Tuning
Posted: Tue Jan 31, 2017 2:56 am
by BrianL
It's been a while since I've had anything to do with Performance Modeller, but I seem to recall it required setting ForceReevaluationOfFeedersForFedCellsOnDataChange=T for it's generated rules. That can have a big impact on performance too.
Re: TI Process Performance Tuning
Posted: Tue Jan 31, 2017 9:05 am
by aravind.cgns
Hi PavoGa,
we are loading both numeric and string data in to the cube, you want me comment the code in prolog tab and copy the same in the epilog??
Wim ,
there is Feedstrings statement added at the top of the rules statements, You want me comment that???
Brain,
ForceReevaluationOfFeedersForFedCellsOnDataChange=T is already set to true in config file.
Re: TI Process Performance Tuning
Posted: Tue Jan 31, 2017 9:11 am
by Wim Gielis
Yes see if it makes a difference in terms of performance.
Re: TI Process Performance Tuning
Posted: Tue Jan 31, 2017 12:37 pm
by aravind.cgns
Wim,
I have commented the Feedstrings statement in the rule editor and executed the TIP but there is no performance Improvement!!
Re: TI Process Performance Tuning
Posted: Tue Jan 31, 2017 12:59 pm
by Steve Rowe
ForceReevaluationOfFeedersForFedCellsOnDataChange=T is already set to true in config file.
This should be F for performance.
Any well designed systems should not require this parameter in the first place (IMO!)
Re: TI Process Performance Tuning
Posted: Tue Jan 31, 2017 2:00 pm
by PavoGa
we are loading both numeric and string data in to the cube, you want me comment the code in prolog tab and copy the same in the epilog??
Sorry, I was not clear. What I am suggesting you try is to
remove the rules from the cube then running your process to load the cube. I would expect this to confirm your rules are the problem, not the TI (having said that without looking at the code).
If confirming the rules/feeders are the problem then rework them. (are the feeders conditional?) If you cannot rework them to improve the performance, then you may try this:
In the prolog of your TI, include some code kind of like this:
Code: Select all
strCmd = 'cmd /c copy \path\cubename.rux \path\cubename.bak';
ExecuteCommand(strCmd, 1);
CubeRuleDestroy(cubename);
In the Epilog, do one of two things:
Simple:
Code: Select all
RuleLoadFromFile(cubename, '\path\cubename.bak');
Or:
Code: Select all
strCmd = 'cmd /c TM1RunTI -process ProcessToLoadRules pCubename=cubename...';
ExecuteCommand(strCmd, 0);
The disadvantage to the latter is it is more complicated. The advantage is it will allow your primary process to complete while the rule file is loaded in the background. There are other things to consider here as well, such as locking. As I said it is more complicated.
Things to try. Good luck.
Ty