Filter columns, not tables, in DAX

SQLBI
27 Aug 202420:36

Summary

TLDREste video de SQLBI explica por qué nunca deberías usar tablas como filtros en DAX. Se presenta un ejemplo de cómo la aplicación incorrecta de filtros en tablas en lugar de columnas puede resultar en cálculos lentos y incorrectos. El video demuestra cómo corregir esta práctica para mejorar la eficiencia y la precisión de las medidas en Power BI, enfatizando la importancia de entender las tablas expandidas y cómo afectan el rendimiento y los resultados de las consultas DAX.

Takeaways

  • 📌 No usar tablas como filtros en DAX, es una de las mejores prácticas y una regla de oro fundamental.
  • 🔍 Los filtros de tablas pueden causar dos problemas principales: números incorrectos y lentitud en los cálculos.
  • ⚠️ Al aplicar filtros a las tablas en lugar de las columnas, se genera una intersección innecesaria que conduce a resultados erróneos.
  • 💡 La corrección de la fórmula 'Large Revenues' muestra cómo cambiar el enfoque de filtrar tablas a filtrar columnas mejora la precisión y la velocidad.
  • 📉 La versión incorrecta de 'Large Revenues' muestra un número mucho menor y es significativamente más lenta que la versión correcta.
  • 🛠️ La demostración utiliza dos tablas de hechos, 'Sales' y 'Receipts', para ilustrar cómo se calculan los ingresos totales y los ingresos grandes.
  • 🔄 La versión correcta de 'Large Revenues' evita la intersección de filtros entre las tablas, permitiendo que los filtros operen de manera independiente y eficiente.
  • 🤖 El uso de Expanded Tables en DAX es clave para entender por qué los filtros sobre tablas son problemáticos y pueden conducir a cálculos incorrectos y lentos.
  • 📚 Es importante comprender y aprender sobre Expanded Tables para mejorar la calidad del código DAX y evitar errores comunes.
  • 🚀 La versión correcta de 'Large Revenues' es aproximadamente 200 veces más rápida que la versión incorrecta, lo que demuestra la importancia de evitar filtros sobre tablas.
  • 👨‍🏫 El script enfatiza la importancia de no filtrar tablas y proporciona una guía para mejorar la eficiencia y precisión en el desarrollo de DAX.

Q & A

  • ¿Por qué no deberías usar tablas como filtros en DAX según el video?

    -El video explica que utilizar tablas como filtros en DAX puede conducir a cálculos incorrectos y rendimiento lento debido a las tablas expandidas, y es una de las reglas más importantes que se deben seguir en DAX.

  • ¿Cuál es la diferencia entre filtrar columnas y filtrar tablas en DAX?

    -Filtrar columnas implica aplicar condiciones directamente a las columnas de datos, mientras que filtrar tablas puede provocar que el motor de cálculo DAX busque combinaciones de filas de varias tablas relacionadas, lo que puede llevar a resultados incorrectos o lentitud en el rendimiento.

  • ¿Qué problemas surgen al utilizar filtros de tablas en lugar de filtros de columnas en DAX?

    -Al filtrar tablas, se pueden obtener números incorrectos y una disminución significativa en la velocidad de cálculo debido a la forma en que las tablas expandidas afectan la intersección de los filtros y la materialización de datos.

  • ¿Qué son las tablas expandidas y cómo afectan el rendimiento de DAX?

    -Las tablas expandidas son una representación en memoria de las tablas y sus relaciones en un modelo de datos. Cuando se filtran tablas, en lugar de columnas, las tablas expandidas pueden provocar que el motor de cálculo recupere muchas más filas de las necesarias, lo que ralentiza el rendimiento.

  • ¿Cómo se puede solucionar el problema de rendimiento y precisión al calcular 'large revenues' en el ejemplo del video?

    -El problema se soluciona al aplicar filtros directamente a las columnas relevantes en lugar de filtrar tablas. Esto evita la intersección innecesaria de tablas expandidas y permite que los filtros se apliquen de manera independiente y eficiente.

  • ¿Cuál es la ventaja de utilizar filtros de columnas en lugar de filtros de tablas en DAX?

    -Al utilizar filtros de columnas, se mejora la eficiencia y se obtiene un cálculo más rápido y preciso, ya que se evita la sobrecarga causada por las tablas expandidas y se permite que los motores de almacenamiento realicen operaciones más directas.

  • ¿Por qué el cálculo de 'large revenues wrong' en el video es significativamente más lento que 'large revenues correct'?

    -El cálculo de 'large revenues wrong' es más lento porque involucra la intersección de varias tablas expandidas, lo que requiere de un mayor volumen de procesamiento y materialización de datos en comparación con el enfoque correcto que simplemente filtra columnas.

  • ¿Qué herramienta se utiliza para investigar las consultas y el rendimiento en DAX?

    -Se utiliza SQL Server Data Tools (SSDT) para investigar las consultas y el rendimiento en DAX, permitiendo ver los planes de consulta y los tiempos de ejecución para entender mejor los problemas de rendimiento.

  • ¿Qué es una buena práctica al escribir medidas en DAX según el video?

    -Una buena práctica al escribir medidas en DAX es evitar filtrar tablas y, en su lugar, aplicar filtros directamente a las columnas que son relevantes para la medida que se está calculando.

  • ¿Cómo se puede mejorar la calidad del código DAX?

    -Se puede mejorar la calidad del código DAX al evitar filtros de tablas y, en su lugar, utilizar filtros de columnas, lo que también puede ayudar a evitar problemas de rendimiento y precisión en las medidas.

  • ¿Por qué es importante comprender las tablas expandidas para un desarrollador de DAX?

    -Es importante comprender las tablas expandidas para un desarrollador de DAX porque pueden explicar por qué cierto código puede ser correcto o incorrecto, lento o rápido, y esto ayuda a escribir un código DAX más eficiente y confiable.

Outlines

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Mindmap

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Keywords

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Highlights

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Transcripts

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora
Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
DAXPower BIFiltrosConsultasTablasMétodosOptimizaciónDesarrolloData AnalysisSQLBI