Forum Discussion
Ayuda de Optimize Code
Hola a todos
Tengo un montón de código que funciona, pero es lento. Leí que vars y switches pueden acelerar las cosas, pero cuando trato de usarlos no funciona. Aquí está mi medida actual (da la respuesta correcta):
if(HASONEFILTER('Single BOM Table'[Child Part]),
[Child Parts Req] - [Makat_Inv_FR],
sumx(SUMMARIZE('Single BOM Table','Single BOM Table'[Child Part],"child",
[Child Parts Req] - [Makat_Inv_FR]),
[niño]*1))
Cuando intento convertirlo usando Vars:
5 Replies
- Syndicate_AdminAdministrator
@airwolf39 porque en sumx estás usando variables, el valor no se calcula para cada parte secundaria y es por eso que
Puede haber muchas razones para el rendimiento lento, cómo se modelan los datos y la relación entre las tablas.
✨ Síguenos en LinkedIn (en inglés) y
a nuestro YouTube (en inglés) canal
Más información sobre el formato condicional en Microsoft Reactor
Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría ❤ Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡ Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.
- Syndicate_AdminAdministrator
Todas mis mesas tienen un reletionship de 1 a muchos. Es muy limpio y utiliza llaves únicas.
Sé que tienes que mantener las variables dentro de una función de cálculo si quieres que funcionen correctamente. No me di cuenta de que esto también se aplica a sumx??
- Syndicate_AdminAdministrator
1 a muchos está bien, ¿alguna dirección de filtro cruzado a ambos?
¿Puede consultar con el analizador de rendimiento qué está pasando? Qué medida está tardando más. comience con una medida y verifique el rendimiento y luego agregue otra para ver cuál está causando el problema.
- Syndicate_AdminAdministrator
El problema es "FG Build". Que está construido sobre un montón de medidas. Lo que espero son algunos consejos sobre cómo hacer las medidas más rápido ...
La medida que está causando el problema es esta:
FG Build =si(ISBLANK([Max Makat todavía necesita]),espacio en blanco(),[FG todavía necesita]-[Impacto de la tasa de llenado])--------------------------------------------------------------------FG todavía necesita =Dónde Calc = CALCULAR([Abrir cantidad de ventas]-[Inv_OpenSO_FGFR],filtro(partes,[Abrir cantidad de ventas]>0))devoluciónsi(Calc>0,Calc,espacio en blanco())Impacto de la tasa de llenado =Dónde FG_S_N = [FG todavía necesita]Dónde Max_S_N = «Tabla de lista de materiales única»[Max Makat todavía necesita]devoluciónsi(HASONEFILTER(Piezas[BOM #]),si(ISBLANK([Coef]),FG_S_N, Max_S_N),Max_S_N+ CALCULAR([FG todavía necesita],filtro(Partes,ISBLANK([Coef]))))Max Makat todavía necesita =si(HASONEFILTER(«Tabla de lista de materiales única»[Parte secundaria]) ||(HASONEFILTER(Piezas[BOM #]) ||(HASONEFILTER(Piezas[SPEC 5]))),«Tabla de lista de materiales única»[Impacto máximo de FR],sumx(RESUMIR(Partes,Piezas[SPEC 5],"spec_5",«Tabla de lista de materiales única»[Impacto máximo de FR]),[spec_5]*1))Impacto máximo de FR =maxx(RESUMIR(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[Parte secundaria],"Niño",([Req de piezas secundarias]-'Inventario Makat'[Makat_Inv_FR])),[Niño]*1)Coef =si(isblank([Qty_Child de ventas abiertas]),espacio en blanco(),si(HASONEFILTER(«Tabla de lista de materiales única»[Parte secundaria]),CALCULAR(MAXX(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[coeff]),filtro(«Tabla de lista de materiales única»,[Qty_Child de ventas abiertas]>0),filtro(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[coeff]>0)),sumx(RESUMIR(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[Parte secundaria],"Niño",CALCULAR(SUMX(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[coeff]),filtro(«Tabla de lista de materiales única»,[Qty_Child de ventas abiertas]>0),filtro(«Tabla de lista de materiales única»,«Tabla de lista de materiales única»[coeff]>0))),[Niño]*1)))
- Syndicate_AdminAdministrator
@airwolf39 todas estas medidas requieren atención. Puedo ver por qué es súper lento.