Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Optimización de un DAX

Hola Comunidad,

Tengo DAX aquí, que necesita cierta optimización. En el sentido de que en este momento, cuando estoy usando este DAX en la visualización, está tardando mucho tiempo / memoria en cargarse. ¿Alguna sugerencia sobre cómo puedo optimizar?

Cambio de precio % Mes-Año Pasado Cliente =
Tabla VAR1 =
CALCULABLE (
ADDCOLUMNS (
RESUMIR ( fact_CustInvoice, fact_CustInvoice[id_dim_Customer], fact_CustInvoice[id_dim_Item],fact_CustInvoice[UniqueKey]),
"SalesQty", [Cantidad de ventas],
"SalesQtyLY", [Cantidad de ventas LY],
"Sales_", [Ventas],
"SalesLY", [Ventas LY]
)
)
Tabla VAR2 =
ADDCOLUMNS (
tabla1,
"Incluir",
SI (
ISBLANK ( [SalesQty] ) || ISBLANK ( [SalesQtyLY] )
|| ISBLANK ( [Ventas] )
|| ISBLANK ( [Sales_] )
|| [SalesQty] <= 0
|| [SalesQtyLY] <= 0
|| [SalesLy] <= 0
|| [Sales_] < = 0,
FALSO
VERDADERO
)
)
Tabla VAR3 =
ADDCOLUMNS (
tabla2,
"AvgPrice", IF ( [Include] = TRUE, DIVIDE ( [Sales_], [SalesQty] ), 0 ),
"AvgPriceLY", IF ( [Include] = TRUE, DIVIDE ( [SalesLY], [SalesQtyLy] ), 0 ),
"Resultado",
IF ( [Incluir] = VERDADERO, [Sales_],0)
)

Tabla VAR4 =
SUMMARIZE(table3,[Include],fact_CustInvoice[UniqueKey],"distinctcount",IF([Include]=TRUE(),DISTINCTCOUNTNOBLANK(fact_CustInvoice[UniqueKey]),BLANK()))
VAR AveragePriceCurrentYear = SUMX ( FILTER ( tabla3, [Include] = TRUE ), [AvgPrice] )
VAR AveragePriceLastYear = SUMX ( FILTER ( tabla3, [Include] = TRUE ), [AvgPriceLY] )
VAR SalesForItemCustomerBothPeriods= SUMX ( FILTER ( tabla3, [Include] = TRUE ), [Resultado] )
Condiciones VAR=SUMX(table4,[distinctcount])

VAR PriceDev = IF(ISBLANK(DIVIDE(AveragePriceCurrentYear,AveragePriceLastYear)),BLANK(),DIVIDE(AveragePriceCurrentYear,AveragePriceLastYear)-1)
DEVOLUCIÓN
SI (
conditions=1,IF(ISBLANK(DIVIDE(AveragePriceCurrentYear,AveragePriceLastYear)),BLANK(),DIVIDE(AveragePriceCurrentYear, AveragePriceLastYear)-1),
[Impacto del cambio de precio mes-año pasado cliente]/ SalesForItemCustomerBodos
)
KR
Sandeep
3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@sandeep_me está haciendo un uso extensivo de la función RESUMIR, que tiene problemas de rendimiento. Sugeriría reescribir para usar alguna combinación de GROUPBY y ADDCOLUMNS. ¡Espero que esto ayude!

Syndicate_Admin
Administrator
Administrator

Hay muchas cosas sucediendo en esa medida (muchas medidas anidadas, FI, etc.). Cualquier pieza subóptima se multiplica por la granularidad de la primera variable de tabla. Le animo a ver uno de los videos de optimización de DAX de SQLBI y usar DAX Studio para desglosarlo (para ver qué partes están causando los problemas y dónde puede reducir la granularidad).

Palmadita

Syndicate_Admin
Administrator
Administrator

Hola @sandeep_me , lo siento, pero esto es un poco demasiado complejo para este foro. Si el rendimiento es un problema, es posible que desee considerar volver a mover la lógica en Power Query.

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.