JimJim
Hola,
Tengo una medida que usa la función de división, toma dos medidas como parámetros de entrada (CompleteCount y NumberOfDays). Las imágenes que usan esta medida son bastante lentas y sospecho que la culpa es de la medida NumberOfDays.
Lo que hace la medida NumberOfDays es calcular el número de días entre una fecha de inicio y una fecha de finalización. Si la fecha de finalización es > hoy, utilice hoy; de lo contrario, utilice la fecha de finalización. aquí está la medida. ¿Hay una manera más eficiente de escribir esto?
Day Count = VAR StartDate = MIN ( 'Completed Date'[Date] ) VAR EndDate = IF ( MAX ( 'Completed Date'[Date] ) > TODAY (), TODAY (), MAX ( 'Completed Date'[Date] ) ) RETURN INT ( EndDate - StartDate )
Alba
Hola @JimJim
No creo que pueda ser mucho más eficiente que lo que ya tienes. Realmente dudo que el problema esté ahí. Tal vez evitando la doble invocación de MAX (‘Fecha completada'[Date] ) me gusta:
Day Count = VAR StartDate = MIN ( 'Completed Date'[Date] ) VAR EndDate = MAX(TODAY(), MAX ( 'Completed Date'[Date] ) )
RETURN INT ( EndDate - StartDate )
pero el cambio, si lo hay, será mínimo ya que el motor es bastante eficiente en el cálculo de operaciones como MAX (‘Fecha de finalización'[Date] ).
Has probado Estudio DAX? Es una herramienta muy útil para identificar cuellos de botella en el rendimiento.
Salud
Alba
Hola @JimJim
No creo que pueda ser mucho más eficiente que lo que ya tienes. Realmente dudo que el problema esté ahí. Tal vez evitando la doble invocación de MAX (‘Fecha completada'[Date] ) me gusta:
Day Count = VAR StartDate = MIN ( 'Completed Date'[Date] ) VAR EndDate = MAX(TODAY(), MAX ( 'Completed Date'[Date] ) )
RETURN INT ( EndDate - StartDate )
pero el cambio, si lo hay, será mínimo ya que el motor es bastante eficiente en el cálculo de operaciones como MAX (‘Fecha de finalización'[Date] ).
Has probado Estudio DAX? Es una herramienta muy útil para identificar cuellos de botella en el rendimiento.
Salud
JimJim
En respuesta a Alba
Hola @AlB,
Gracias por su respuesta, no sabía que las funciones agregadas como MAX podrían tomar múltiples expresiones, por lo que es muy bueno saberlo. Sin embargo, necesito tomar la fecha más temprana entre CompletedDate y HOY, por lo que la variable debería ser:
VAR EndDate = MIN(TODAY(), MAX ( 'Completed Date'[Date] ) )
Curiosamente, las imágenes parecen estar funcionando bien en este momento (he vuelto a abrir el informe para eliminar cualquier almacenamiento en caché y aún funciona rápido), por lo que no creo que DAX Studio sea de mucha ayuda en este momento. Tal vez solo una de estas fallas, lo vigilaré.