Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
rafael_qg
Partner - Contributor III
Partner - Contributor III

Qué expresión es más óptima de estas dos?

Hola, 

Me he encontrado unas expresiones en un CdM y tengo la duda respecto a qué expresión es más óptima de estas dos:

Sum(if (PAIS = CANADA and CITY = TORONTO, 0, Ventas ))

O esta otra:

if (PAIS = CANADA and CITY = TORONTO, 0, Sum(Ventas))

 

Entiendo que las dos expresiones hacen lo mismo pero ¿qué os parece más óptimo?

Saludos.

 

3 Replies
rubenmarin

Hola, la segunda se supone que debería dar mejor rendimiento, pero puede que solo funcione en objetos donde PAIS y CITY sean dimensiones. Por ejemplo en un KPI sin dimensiones la segunda no funcionaría (dependiendo de selecciones y modelo de datos) pero la primera sí debería funcionar.

En cualquier caso, dependiendo del volumen de datos y la complejidad del modelo, puede que estemos hablando solo de microsegundos de diferencia.

rafael_qg
Partner - Contributor III
Partner - Contributor III
Author

Gracias Rubén,

Aunque sea pequeña la diferencia en rendimiento, si la primera expresión la usamos como medida en una tabla pivotante de millones de registros en un modelo de datos complejo (incluso con tablas sintéticas) entonces sí podría notarse más su rendimiento no crees?

Saludos.

 

rubenmarin

Sí, por eso decía que dependía del volumen de datos y la complejidad del modelo.

Pero en una tala pivotante lo más posible es que la segunda te la calcule solo si PAIS y CITY están desplegadas, si las contraen puede que falle la expresión, y eso te obligaría a usar la segunda.

Igual podrías probar con =Sum({$-<PAIS={CANADA}, CITY={TORONTO}>} Ventas), que en teoría debería ser más eficiente que cualquiera de las 2 anteriores y funcionaría en pivotate contraída y expandida, y en el resto de objetos.