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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Anonymous
Not applicable

Solución de problemas de filtrado cruzado lento

Tengo algunos problemas con el filtrado cruzado siendo extremadamente lento (20 segundos) en comparación con el uso de una segmentación de datos para lograr el mismo resultado (<1 segundo).

Mi informe consta de lo siguiente:

1. "Resumen" - tabla visual. Contiene StockCode, Descripción y varias estadísticas sobre cantidad disponible, ventas, etc. Los datos son DirectQuery (ya que los estoy integrando con PowerApp)

2. "Historial de ventas" - matriz visual. Contiene el último historial de ventas de 12 meses por mes y almacén. Los datos son una tabla diferente, en el modo de importación, que enlaza a la tabla de resumen en StockCode

Uso del informe: analizamos las líneas de resumen una por una, seleccionando una para ver el historial detallado en los otros objetos visuales.

Por ejemplo, seleccionaré StockCode 12345 y la matriz Historial de ventas se actualizará para mostrar los últimos 12 meses de ventas para cada almacén en ese StockCode específico.

El problema es que esto es extremadamente lento: el objeto visual Historial de ventas tarda más de 20 segundos en actualizarse después de hacer clic en una fila de la tabla Resumen.

Cuando uso una segmentación de datos en StockCode para seleccionar la misma línea, el historial de ventas se actualiza casi al instante (<1 segundo)

He intentado cambiar el origen de datos Historial de ventas a DirectQuery, pero eso no hizo ninguna diferencia.

Cuando hago una copia del objeto visual Resumen e incluyo solo 2 de las columnas originales (StockCode y una de las estadísticas), el filtrado cruzado de este objeto visual funciona bien y rápidamente.

¿Por qué es que el filtrado cruzado de un objeto visual de tabla con más columnas tarda mucho más, dado que ambos producen el mismo conjunto de resultados y los orígenes de datos están vinculados por una sola columna (StockCode)?

1 ACCEPTED SOLUTION
Anonymous
Not applicable

He solucionado el problema utilizando el siguiente método:

1. "Caché" los resultados de la consulta directa en una tabla en mi base de datos.

2. Cambie la consulta de la tabla de resumen para consultar la tabla recién creada.

Ahora está funcionando extremadamente rápido, debido a la velocidad de hacer una simple consulta de selección en una base de datos.

Esto agrega la complejidad de tener que mantener esa tabla actualizada para los usuarios del informe, ¡pero al menos el rendimiento es mejor!

Sería interesante aprender a optimizar las consultas de filtrado cruzado, luchando por encontrar cualquier buen material de referencia en línea.

View solution in original post

6 REPLIES 6
Anonymous
Not applicable

He solucionado el problema utilizando el siguiente método:

1. "Caché" los resultados de la consulta directa en una tabla en mi base de datos.

2. Cambie la consulta de la tabla de resumen para consultar la tabla recién creada.

Ahora está funcionando extremadamente rápido, debido a la velocidad de hacer una simple consulta de selección en una base de datos.

Esto agrega la complejidad de tener que mantener esa tabla actualizada para los usuarios del informe, ¡pero al menos el rendimiento es mejor!

Sería interesante aprender a optimizar las consultas de filtrado cruzado, luchando por encontrar cualquier buen material de referencia en línea.

amitchandak
Super User
Super User

@iron_dinges , si hay alguna unión bidireccional, hágalos direccionales únicas. Compruebe la consulta que se está generando y compruebe si hay índices para admitir esa consulta.

Consulte también: https://www.youtube.com/watch?v=4kVw0eaz5Ws

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here
Anonymous
Not applicable

@amitchandak

Gracias por la respuesta.

Las uniones son unidireccionales.

¿Cómo ayudaría un índice en este problema? Tengo un problema con la tabla Import, no con la tabla DirectQuery.

Para aclarar:

1. El objeto visual de la tabla Summary tiene el origen de datos DirectQuery. Esta es la tabla visual donde selecciono filas para filtrar el otro objeto visual.

2. El objeto visual de la matriz Historial de ventas es un origen de datos de importación, por lo que a partir de mi comprensión, los índices no serían relevantes, ya que todo el conjunto de datos ya existe en el modelo?

@iron_dinges , están tomando datos de ambas fuentes (importación/directa) juntos. ¿Puede compartir el diagrama de relaciones con la tabla Direct/import etiquetada

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here
Anonymous
Not applicable

@amitchandak

Después de investigar con el analizador de rendimiento creo que entiendo por qué el rendimiento de DirectQuery es importante: parece que el filtrado cruzado realiza una consulta completa en la tabla DirectQuery, utilizando una cláusula WHERE adicional para cada una de las columnas del objeto visual de la tabla.

¿No hay forma de indicar a la operación de filtrado cruzado que solo utilice la columna StockCode para el filtrado cruzado? Para mí no tiene ningún sentido por qué consultaría el resto de las columnas, la única columna relevante en este caso es la columna StockCode.

Anonymous
Not applicable

Sí, estoy usando una mezcla de Import y Direct.

Como se indica en el OP, también intenté usar solo DirectQuery para ambas tablas, pero el resultado fue el mismo.

Modelo de datos:

Model.png

vw_PBI_Redundant... es la tabla DirectQuery que estoy usando para el objeto visual de la tabla "Resumen".

Historial de ventas NotTraceable es la tabla de importación que estoy utilizando para el objeto visual de la tabla "Historial de ventas".

Las otras dos tablas del modelo proporcionan información sobre objetos visuales adicionales en el informe. ¿Podrían estar afectando el rendimiento?

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors