DAX para calcular el stock de apertura y cierre, exceder el límite de memoria

Un usuario Pregunto ✅

Analitika

Tengo una tabla de datos grande en el modelo de datos del año 2000

¿Por qué una simple medida excede los límites de la memoria? ¿Y cómo deshacerse de eso?

Stock de apertura =
CALCULAR (
SUM (Tabla1[value] ),
FILTRO (TODOS (‘Fecha'[Date] ), ‘Fecha'[Date] )

Stock de cierre =
CALCULAR (
SUM (Tabla1[value] ),
FILTRO (TODOS (‘Fecha'[Date] ), ‘Fecha'[Date] <= MAX ('Fecha'[Date] ))
)

Analitika_0-1609234285042.png

Cargando solo si se selecciona un mes

Hola, @Analitika

Me gustaría sugerirle que consulte la siguiente guía para mejorar el rendimiento de Power BI optimizando DAX.

Mejore el rendimiento de Power BI optimizando DAX

Atentamente

Alano

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Greg_Deckler

@Analitika Un par de pensamientos sobre esto. En primer lugar, es increíblemente difícil solucionar problemas de DAX relacionados con el rendimiento sin el modelo, por lo que todo lo que puedo hacer es adivinar. Escribí una serie de dos partes sobre la optimización del rendimiento de DAX que podría ayudar.

  • Performance Tuning DAX – Parte 1 – Comunidad Microsoft Power BI
  • Performance Tuning DAX – Parte 2 – Comunidad Microsoft Power BI

No estoy seguro de si ayudará, pero tal vez intente usar una tabla de fechas separada para su cortadora que no esté relacionada con su tabla de fechas principal. Entonces podrá deshacerse de su declaración ALL. Además, si su tabla de fechas está relacionada con su tabla de hechos, también puede intentar filtrar la tabla directamente en lugar de revisar la tabla de fechas una vez que tenga una tabla de fechas desconectada separada para su segmentador. Mi preocupación con la declaración ALL es que parece que está poniendo la totalidad de su tabla de hechos en contexto y no puedo imaginar que sea óptimo. Además, definitivamente desactivaría la fecha / hora automática y la razón es que esto aumenta el tamaño de su tabla de fechas a proporciones enormes, generalmente innecesariamente. Luego, usando ALL para traer su tabla de fechas completa, debe cargar este mes en la memoria. Deshacerse de la fecha / hora automática debería reducir drásticamente el tamaño de su tabla de fechas en su modelo de datos y luego podría caber en la memoria.

Greg_Deckler

@Analitika: tendría que comprender mejor el modelo de datos para comprender lo que está sucediendo. ¿Realmente necesitas el TODO ahí? Con el TODO allí, está anulando el contexto y obligando a la medida a cargar la tabla de fechas completa en la memoria y luego recortarla en lugar de simplemente tomar lo que tiene en contexto y filtrarlo. ¿Qué tan grande es tu tabla de citas? ¿Ha desactivado la fecha / hora automática?

Analitika

En respuesta a Greg_Deckler

@Greg_Deckler

Tengo una cortadora

Analitika_0-1609252983141.png

se llenó de fecha / hora automática ‘Fecha'[Date] pero cortado para durar 3 años para reducir las fechas de corte (solo es necesario mostrar las fechas de los últimos 3 años)

pero MIN (Table1[date]) es 2000.01.01

Entonces, para el stock inicial, necesito sumar todo en la Tabla1[value] desde 2000.01.01 hasta MIN (Fecha[Date]) seleccionado por dropdown

Entonces, para el stock de cierre, necesito sumar todo en la Tabla1[value] desde 2000.01.01 hasta MAX (Fecha[Date]) seleccionado por dropdown

Amitchandak

@ parry2k, @Greg_Deckler, ¿cuál es la mejor manera de lograr esto de manera eficiente en el rendimiento?

Amitchandak

@Analitika, vea si este blog sobre el mismo tema puede ayudar

https://blog.crossjoin.co.uk/2020/01/20/visual-has-exceeded-the-available-resources-error-power-bi/

Analitika

En respuesta a Amitchandak

Los cálculos DAX ineficientes pueden hacer que una consulta intente tomar mucha memoria

entonces, ¿cómo escribir un cálculo eficiente para ese propósito?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *