Bokazoit
Yo uso esta medida:
// Consulta DAX
DEFINIR
VAR __DS0FilterTable =
FILTRAR(
KEEPFILTERS (VALUES (‘DimDato'[Dato])),
Y (‘DimDato'[Dato] > = FECHA (2020, 1, 1), ‘DimDato'[Dato]
VAR __DS0FilterTable2 =
TREATAS ({«Faste støtter»}, ‘DimDonertype'[Donergruppe])
VAR __DS0FilterTable3 =
TREATAS ({«STØTTE – ÅR (Personligt)»}, ‘DimDonertype'[DonertypeNavn])
VAR __DS0Core =
RESUMEN COLUMNAS (
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[År],
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[Måned],
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[MonthNo],
__DS0FilterTable,
__DS0FilterTable2,
__DS0FilterTable3,
«Medlemmer», ‘FactMedlem'[Medlemmer]
)
VAR __DS0PrimaryWindowed =
TOPN (
1001,
__DS0Core,
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[År],
1,
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[MonthNo],
1,
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[Måned],
1
)
EVALUAR
__DS0PrimaryWindowed
PEDIR POR
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[År],
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[MonthNo],
‘LocalDateTable_288f3ccf-16f5-4ea7-b323-c3d544b4c02a'[Måned]
Y el momento de correr fue este:
Bokazoit
Gracias por las soluciones, pero no funcionó.
No tenía sentido conectar la dimensión de fecha a CreateDate o EndDate. Así que esa fue una mala por mi parte. Y eliminar esa conexión fue la parte 1 de la solución.
Creé el gráfico usando la fecha de la dimensión fechada, y eso fue lo que arruinó el rendimiento, y tiene sentido. Cambié la fecha a una fecha precalculada en la dimensión y usé un mes-año, un año y una semana-año en el eje x, y esa fue la parte 2 de la solución.
Supongo que cuando se usa una fecha simple con una medida, la medida intentará recalcular todos los puntos posibles en la dimensión de la fecha y eso, por supuesto, la ralentiza. Entonces, usar una fecha de fin de mes funcionó, por así decirlo 🙂
Bokazoit
Gracias por las soluciones, pero no funcionó.
No tenía sentido conectar la dimensión de fecha a CreateDate o EndDate. Así que esa fue una mala por mi parte. Y eliminar esa conexión fue la parte 1 de la solución.
Creé el gráfico usando la fecha de la dimensión fechada, y eso fue lo que arruinó el rendimiento, y tiene sentido. Cambié la fecha a una fecha precalculada en la dimensión y usé un mes-año, un año y una semana-año en el eje x, y esa fue la parte 2 de la solución.
Supongo que cuando se usa una fecha simple con una medida, la medida intentará recalcular todos los puntos posibles en la dimensión de la fecha y eso, por supuesto, la ralentiza. Entonces, usar una fecha de fin de mes funcionó, por así decirlo 🙂
yingyinr
Hola @Bokazoit,
Actualice la fórmula de su medida como se muestra a continuación y verifique si puede mejorar el rendimiento. Si aún no es así, ¿podría proporcionar su archivo pbix de muestra para solucionar el problema? Gracias.
Medlemskaber =
VAR MaxDate =
MAX ( DimDato[Dato] )
RETURN
CALCULATE (
DISTINCTCOUNT ( FactMedlem[Klientnummer] ),
KEEPFILTERS ( FactMedlem[OprettelsesDato] <= MaxDate
&& FactMedlem[OpsigelsesDato] > MaxDate ),
ALL ( DimDato[Dato] )
)
Además, revise el contenido en los siguientes enlaces. Espero que te puedan ayudar.
Mejore el rendimiento de Power BI con la fecha / hora automática y las variables DAX
Mejore el rendimiento de Power BI optimizando DAX
Prácticas recomendadas para la importación de datos en Power BI
Atentamente
d_gosbell
Una cosa que podría intentar es reducir el número de columnas en el contexto del filtro para la función CALCULAR. Actualmente, está filtrando toda la tabla de FactMedlem (por lo que todas las columnas de esa tabla se utilizarán en el contenido del filtro). Pruebe lo siguiente, donde simplemente filtra sobre las dos columnas de fecha (cambie resaltado en negrita) y vea si eso ayuda al rendimiento.
Bokazoit
En respuesta a d_gosbell
Esa no es realmente una opción. La dimensión de la fecha no está relacionada con la tabla de hechos y eso, por supuesto, puede explicar el bajo tiempo de respuesta. Pero si conecto la dimensión de fecha con el hecho a través de la clave de fecha de inicio en la tabla de hechos y la clave de fecha en mi dimensión de fecha, los números no son correctos, pero la respuesta es instantánea.
Entonces no tengo ni idea de qué hacer
d_gosbell
En respuesta a Bokazoit
No entiendo por qué no cree que esta sea una opción. No estoy sugiriendo cambiar ninguna relación ni nada por el estilo, simplemente cambié HechoMedlem por TODOS (FactMedlem[OprettelsesDato], HechoMedlem[OpsigelsesDato] ) dentro del filtro. ¿Estás diciendo que probaste esto y arrojó un error o algo así?
Bokazoit
En respuesta a d_gosbell
Probé tu medida. Conecté la dimensión de la fecha con la fecha de inicio de mi Hecho. Y tu sugerencia realmente me dio lo que quería. Pero es aún más lento de lo que comencé. Esto es del analizador de rendimiento:
// Consulta DAX
DEFINIR
VAR __DS0FilterTable =
FILTRAR(
KEEPFILTERS (VALUES (‘DimDato'[Dato])),
Y (‘DimDato'[Dato] > = FECHA (2020, 1, 1), ‘DimDato'[Dato]
VAR __DS0FilterTable2 =
TREATAS ({«Faste støtter»}, ‘DimDonertype'[Donergruppe])
VAR __DS0FilterTable3 =
TREATAS ({«STØTTE – ÅR (Personligt)»}, ‘DimDonertype'[DonertypeNavn])
VAR __DS0Core =
RESUMEN COLUMNAS (
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[År],
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[Måned],
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[MonthNo],
__DS0FilterTable,
__DS0FilterTable2,
__DS0FilterTable3,
«Medlemskaber», ‘FactMedlem'[Medlemskaber]
)
VAR __DS0PrimaryWindowed =
TOPN (
1001,
__DS0Core,
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[År],
1,
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[MonthNo],
1,
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[Måned],
1
)
EVALUAR
__DS0PrimaryWindowed
PEDIR POR
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[År],
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[MonthNo],
‘LocalDateTable_8f17ad71-0646-46e2-be45-61501a732b9f'[Måned]
Bokazoit
En respuesta a d_gosbell
Lo siento, quiero decir que no es una opción reducir la cantidad de columnas. Esa es la información mínima absoluta. Pero intentaré esa medida lo antes posible y volveré 🙂