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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Consulta Dax muy lenta, basada en el segmentador "entre", ¿cómo optimizar?

Hola

Mi medida es muy baja, una sola línea tarda 2 segundos en completarse. ¿Cómo se puede optimizar esto? Me doy cuenta de que puede ser una combinación del modelo de relación, la consulta dax, etc.

Pensé en intentar con 1) buscar ayuda para optimizar la consulta dax en sí si es posible y 2) ajustar el modelo de relación para que se agregue una relación muchos-muchos con una tabla puente. Pero no estoy seguro de la ganancia de rendimiento que esto puede dar.

Por lo tanto, para la consulta de Dax en sí, está filtrando una tabla grande en función de las selecciones mínimas y máximas del usuario, para devolver las filas / valores entre este valor mínimo y máximo.

¿Cómo hubieras escrito la medida? ¿Está bien o se puede optimizar?

Filtered_Measure =


VAR MinV = MIN('Tabla[Columna])
VAR MáxV = MAX('Tabla[Columna])
DEVOLUCIÓN
CALCULAR(
[Medir],
'Mesa'[columna] >= MinV &&
'Mesa'[columna] <= MáxV
)
Tal vez haya formas más rápidas de "elegir" el valor seleccionado de una segmentación para el valor mínimo y máximo, me temo que la fórmula actual está revisando la tabla completa filtrada real en busca de los valores mínimo y máximo, en lugar de simplemente elegir los que el usuario ya ha especificado, pero no 100% seguro.
Toda ayuda es bienvenida,
Daniel
2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

Intenté crear un parámetro que es una tabla con muchas menos filas que la original. Y usarlo como un cortador intermedio, que luego, en cierta medida, afecta los resultados.

Probablemente eso fue parte de la solución. También reemplacé una relación de muchos a muchos con una mesa de bridge, lo que puede haber acelerado más las cosas.

Una forma directa de elegir dos valores separados en una segmentación intermedia que aún no he encontrado.

View solution in original post

Syndicate_Admin
Administrator
Administrator

La creación de un parámetro con una tabla pequeña (pocas filas) en comparación con la tabla real de la base de datos aceleró las cosas. También se ha creado una tabla puente, que sustituye a una relación de varios a varios.

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Revisé diferentes funciones de Dax como values(), gracias. No encontré uno que se adaptara a mis necesidades exactas para elegir de manera eficiente los dos valores seleccionados separados en una segmentación intermedia. Es posible que todavía sea uno, pero no he podido identificar uno en ese caso.

Syndicate_Admin
Administrator
Administrator

La creación de un parámetro con una tabla pequeña (pocas filas) en comparación con la tabla real de la base de datos aceleró las cosas. También se ha creado una tabla puente, que sustituye a una relación de varios a varios.

Syndicate_Admin
Administrator
Administrator

Intenté crear un parámetro que es una tabla con muchas menos filas que la original. Y usarlo como un cortador intermedio, que luego, en cierta medida, afecta los resultados.

Probablemente eso fue parte de la solución. También reemplacé una relación de muchos a muchos con una mesa de bridge, lo que puede haber acelerado más las cosas.

Una forma directa de elegir dos valores separados en una segmentación intermedia que aún no he encontrado.

Syndicate_Admin
Administrator
Administrator

Tal como se publicó, su filtro CALCULATE no hace nada. Nota al margen: en lugar de &&, use comas.

Querrá evaluar el código [Medir] real.

Hola

No estoy seguro de haberlo entendido completamente.

La medida parece funcionar bien. He pensado que cuando no se usa la declaración FILTER, se infiere del contexto.

¿Es viable usar el signo "," en lugar de && en este caso? Necesito que se cumplan ambas condiciones para que la medida tenga resultados.

Una pregunta de seguimiento es cuál es la forma más efectiva / dax más rápida de obtener el valor especificado en las segmentaciones por los usuarios, como en una segmentación intermedia, el valor mínimo y el valor máximo, esos dos.

Más información sobre FILTERS and VALUES y MAXX amd MINX.

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

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

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

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

Top Solution Authors