Por qué las columnas calculadas de Power BI arruinan el rendimiento de los informes e inflan la memoria del modelo
By Mirko Peters ·
Descubre por qué abusar de las columnas calculadas de Power BI infla la memoria del modelo y arruina el rendimiento de los informes. Aprende a optimizar la arquitectura de tu modelo de datos.
Automatically translated with AI from the original post. Read the English original

Usar columnas calculadas de forma incorrecta en Power BI puede inflar silenciosamente la memoria de tu modelo de datos y ralentizar el renderizado de los informes. A diferencia de las medidas dinámicas, las columnas calculadas evalúan y almacenan cada fila durante la actualización de datos, consumiendo RAM valiosa y aumentando la carga de procesamiento en la arquitectura de tu área de trabajo.
Puntos clave
- Las columnas calculadas calculan los valores fila a fila durante la actualización de datos y los almacenan de forma permanente en memoria.
- Abusar de las columnas calculadas degrada considerablemente las tasas de compresión de VertiPaq, lo que provoca un enorme aumento del tamaño del archivo.
- El contexto de fila obliga a que los cálculos se ejecuten de forma estática, ignorando por completo las selecciones de filtro del usuario en los elementos visuales.
- Los modelos de datos con demasiadas columnas tienen problemas de escalabilidad, sobre todo cuando se integran en grandes entornos empresariales de Microsoft Fabric.
- Trasladar la lógica de columnas que consumen mucho almacenamiento a medidas calculadas en tiempo de consulta conserva la RAM del sistema y optimiza el rendimiento de los informes.
El coste oculto en memoria de la evaluación fila a fila
Cuando creas un nuevo informe en Power BI, es fácil caer en la costumbre de usar columnas calculadas para cada nuevo dato que necesitas mostrar. Si necesitas un margen de beneficio, un nombre completo concatenado o un grupo categorizado para tus cifras de ventas, crear una columna dentro de tu tabla resulta intuitivo. Al fin y al cabo, puedes ver los resultados de inmediato en la Vista de datos, exactamente como en una hoja de cálculo de Excel.
Sin embargo, Power BI es un motor analítico, no una hoja de cálculo. Cada vez que creas una columna calculada, le indicas al motor de base de datos VertiPaq que calcule ese valor para cada una de las filas de la tabla durante el proceso de actualización de datos. Si tu tabla de ventas tiene cinco millones de filas, tu nueva columna calculada añade cinco millones de entradas independientes a tu modelo semántico.
Peor aún, las columnas calculadas interfieren con los algoritmos de compresión del motor. VertiPaq depende de columnas de baja cardinalidad, es decir, columnas con valores repetitivos y duplicados, para comprimir los datos de forma eficiente. Una columna calculada única suele arruinar esta eficiencia de compresión, multiplicando la RAM necesaria para mantener el modelo residente en memoria. A medida que tu modelo crece, este aumento de memoria puede superar rápidamente los límites de capacidad de tu área de trabajo en la nube de Microsoft.
Cómo el contexto estático limita la flexibilidad de tus informes
Más allá del consumo de memoria, las columnas calculadas introducen limitaciones funcionales importantes debido a la forma en que gestionan el contexto de evaluación. Una columna calculada opera estrictamente dentro de un contexto de fila. Evalúa los valores de la fila actual de forma independiente a las interacciones del usuario, los segmentadores o las selecciones de filtrado cruzado realizadas en el lienzo del informe.
Si creas una columna calculada para marcar a los clientes de alto valor según un umbral estático, esa clasificación queda fijada en la capa de almacenamiento. Si después un usuario cambia un segmentador para ver los datos por región o modifica un intervalo de fechas, la columna calculada sigue sin verse afectada por esos filtros. No puede adaptarse de forma dinámica a los cambios en los estados de agregación, porque su valor ya se calculó y se almacenó horas antes, durante la última actualización.
Esta rigidez contrasta claramente con las medidas, que calculan los resultados sobre la marcha basándose exclusivamente en el contexto de filtro que aplica el usuario en ese preciso momento. Cuando un usuario interactúa con un visual, una medida se recalcula para ofrecer información precisa y consciente del contexto, mientras que una columna calculada se limita a devolver los datos estáticos almacenados en RAM.
Diseño de modelos más ligeros para Microsoft Fabric y Azure
La generación de informes en la nube empresarial exige una gran eficiencia, sobre todo al escalar en Microsoft Fabric, Azure y entornos de datos complejos de Microsoft 365. Los modelos semánticos sobredimensionados consumen recursos de infraestructura, ralentizan los tiempos de respuesta de las consultas y frustran a los usuarios de negocio que esperan a que se carguen los paneles.
Para que tus informes mantengan un rendimiento óptimo, limita las columnas calculadas estrictamente a los casos en los que los valores a nivel de fila son realmente imprescindibles. Por ejemplo, puedes usar una columna calculada si necesitas establecer una clave de relación entre tablas basada en varios parámetros, o si el valor debe utilizarse dentro de un segmentador o de una regla de seguridad a nivel de fila (RLS), donde no se permiten medidas.
Para el resto de cálculos analíticos, como totales, promedios, ratios y agregaciones condicionales, debes trasladar la lógica a medidas. Las medidas no consumen espacio de almacenamiento porque no persisten valores en el modelo. En su lugar, residen en memoria únicamente como código y se ejecutan solo cuando un visual solicita los datos. Este enfoque preserva la RAM, maximiza la compresión y mantiene tu infraestructura en la nube funcionando sin problemas.
Conclusión
Comprender las diferencias fundamentales entre el almacenamiento a nivel de fila y la ejecución dinámica de consultas es clave para cualquiera que construya soluciones analíticas escalables. Al reducir al mínimo las columnas calculadas innecesarias y apostar por el potencial de las medidas dinámicas, puedes mejorar notablemente la velocidad de los informes y reducir el consumo de memoria.
Para explorar este tema en profundidad y escuchar un desglose completo y sin jerga de cómo el motor gestiona tus fórmulas, escucha el episodio completo. Mantente a la vanguardia de tu estrategia de analítica en la nube y sintoniza más perspectivas de expertos en el podcast M365 FM.
Preguntas frecuentes
¿Por qué las columnas calculadas consumen tanta memoria en Power BI?
Las columnas calculadas evalúan cada fila durante la actualización de datos y almacenan esos valores de forma permanente en la RAM del modelo. Esto impide que el motor VertiPaq comprima los datos de forma eficaz, lo que provoca un rápido crecimiento del modelo.
¿Las medidas ocupan espacio de almacenamiento en un modelo semántico de Power BI?
No, las medidas no ocupan espacio de almacenamiento. Se guardan simplemente como definiciones de fórmulas en los metadatos y solo se calculan de forma dinámica cuando un visual o una interacción del usuario solicita el cálculo.
¿Cuándo es realmente apropiado usar una columna calculada?
Las columnas calculadas deben reservarse para escenarios específicos en los que el contexto de fila es imprescindible, como crear claves compuestas para relaciones, aplicar reglas de seguridad a nivel de fila (RLS) o alimentar elementos que deben aparecer como valores estáticos en un segmentador.
¿Cómo afectan las columnas calculadas al rendimiento de la visualización de informes?
Un número excesivo de columnas calculadas aumenta el tamaño total del modelo semántico y degrada la compresión de los datos. Los modelos más grandes requieren más memoria y potencia de procesamiento, lo que en última instancia ralentiza la ejecución de las consultas y los tiempos de carga de los informes en todo tu espacio de trabajo.