Forum Discussion
Performance Issue Advice
Hi guys!
I am suffering with a performance issue for a measure.
It is derived from several others, so I'll paste all the ones that are calculated for the last one to exist.
All the previous are not affecting the performance when brought in a table (for instance).
Do you have any advices to save processing, maybe using different syntaxes...
This is what I did to calculate the average use for the next 30 days of every itemThen this is what I did to find out the target stock value for each oneI then do a SUMX against the unit valuesThis is how I calculate what I current have in StockAnd finally this is the Measure that is causing the performance impact, when I have to calculate the Excess Stock existent based on all the previous ones
- Anonymous6 years ago
Anonymous,
You can use variable to avoid double calculation in your measure:
Excess Stock = VAR result = [Valid Stock Value] - [TargetStockValue] - [No Future Use] RETURN IF ( result < 0, 0, result ) - Anonymous6 years ago
Anonymous,
Same principle applies. You want to avoid repeating measure because it calculates every time you mention it. Use variable so the result is stored in the memory
Stock OK = VAR validStock = [Valid Stock Value] VAR targetStock = [TargetStockValue] RETURN SWITCH ( TRUE (); validStock >= targetStock; targetStock; validStock )
4 Replies
- AnonymousNot applicable
Anonymous,
You can use variable to avoid double calculation in your measure:
Excess Stock = VAR result = [Valid Stock Value] - [TargetStockValue] - [No Future Use] RETURN IF ( result < 0, 0, result )- AnonymousNot applicable
Anonymous
Anonymous wrote:Anonymous,
You can use variable to avoid double calculation in your measure:
Excess Stock = VAR result = [Valid Stock Value] - [TargetStockValue] - [No Future Use] RETURN IF ( result < 0, 0, result )
Awesome! This reduced the calculation time from 4 minutes to 10 secs. Thanks! - AnonymousNot applicable
Anonymous
This one is still a bit slow, though... any ideas about it?Stock OK = SWITCH(TRUE();[Valid Stock Value]>=[TargetStockValue];[TargetStockValue];[Valid Stock Value])- AnonymousNot applicable
Anonymous,
Same principle applies. You want to avoid repeating measure because it calculates every time you mention it. Use variable so the result is stored in the memory
Stock OK = VAR validStock = [Valid Stock Value] VAR targetStock = [TargetStockValue] RETURN SWITCH ( TRUE (); validStock >= targetStock; targetStock; validStock )