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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric 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
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.