Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!

Reply
Anonymous
Not applicable

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 itemThis 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 oneThen this is what I did to find out the target stock value for each oneI then do a SUMX against the unit valuesI then do a SUMX against the unit valuesThis is how I calculate what I current have in StockThis 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 onesAnd 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

2 ACCEPTED SOLUTIONS
Anonymous
Not 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 )

View solution in original post

Anonymous
Not 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 )

 

 

View solution in original post

4 REPLIES 4
Anonymous
Not 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 )
Anonymous
Not 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])
Anonymous
Not 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 )

 

 

Anonymous
Not 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!

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! It's time to submit your entry.

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.