Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Performance of SWITCH()

Hi,

 

I'm trying to understand, how the first argument of the SWITCH-function is being evaluated/calculated when checking the second arguments.

 

Here an example:

 

SWITCH (

SELECTEDVALUE( Product[Color] ) ,
"Green", 1,
"Blue", 2,
"Red", 3

)

 

Will the SELECTEDVALUE ( Product[Color] ) be calculated at the beginning, then saved like a variable, and then in the second step only compared to the different colors? Or is it computed for every line of comparison new?

 

Personally I think that it is beeing calculated once, stored, and then compared. But I was wondering, because I saw someone writing the SWITCH-Function with a variable as TRUE/FALSE argument:

var color = SELECTEDVALUE( Product[Color] )

RETURN

SWITCH (

color ,
"Green", 1,
"Blue", 2,
"Red", 3

)

 

And this got me thinking, maybe I was wrong. Would be great if someone could enlighten me 😉 

 

PS: I'm just curious if there is a difference in performance, that there could be differences when the function is being evaluated row by row I'm aware 🙂 

 

Regards,

Max

  • hi Anonymous 

    SWITCH is runned as nested IFs. So the performance shall be better to save the first argument as a variable. As a variable is calculated once, while without varible, it is calculated in every nested IF, three times in your case.

1 Reply

  • hi Anonymous 

    SWITCH is runned as nested IFs. So the performance shall be better to save the first argument as a variable. As a variable is calculated once, while without varible, it is calculated in every nested IF, three times in your case.