4.4Optimización y rendimiento (Performance Analyzer)
Lo esencial en 30 segundos
- Una lentitud no se adivina, se cronometra: el Analizador de rendimiento (Vista) mide cada visual — consulta DAX vs visualización.
- Consulta DAX lenta = modelo o medida a revisar; visualización lenta = visual sobrecargado.
- El orden de los remedios: modelo primero (estrella, columnas inútiles eliminadas en Power Query, cardinalidades reducidas, fecha y hora automáticas desactivadas), medidas después, visuales por último (menos por página).
Mini-caso hilado — Zineb persigue la lentitud de su informe
Zineb, controladora de gestión en una pyme agroalimentaria de Argel, recibe la observación: su informe de ventas es «lento». En lugar de adivinar, aplica el método. Abre Vista → Analizador de rendimiento, inicia la grabación y actualiza los objetos visuales: un histograma revienta el cronómetro. Lee el detalle: el tiempo está en «Consulta DAX» — el culpable es el modelo, no el visual. Vuelve a Power Query para eliminar las columnas que el informe no usa, reduce las cardinalidades y desmarca «Fecha y hora automáticas» en Opciones. Vuelve a cronometrar: la mejora es clara. Ha nacido su reflejo: cronometrar, diagnosticar, aligerar — modelo, medidas y luego visuales.
Caso autónomo de esta sección: vuelve en el curso, el esquema, el guion y el reto 48 h de la sección 4.4.
1. Cronometrar primero
Un informe lento es un informe muerto: más allá de unos segundos, los usuarios desconectan. El diagnóstico empieza por el Analizador de rendimiento (Vista → Analizador de rendimiento): se inicia la grabación, se actualizan los objetos visuales y cada visual muestra su tiempo detallado. Se leen dos puestos: la consulta DAX (el coste del modelo y de las medidas) y la visualización (el renderizado del visual). Zineb ya no adivina: lee la clasificación de los tiempos.
2. Leer los dos puestos
La interpretación es simple: consulta DAX lenta = el modelo o la medida deben revisarse; visualización lenta = el visual está sobrecargado (demasiados puntos, demasiadas categorías). Incluso se copia la consulta («Copiar la consulta») para un análisis fino en DAX Studio. Zineb identifica así su histograma culpable y sabe dónde actuar antes de tocar al azar.
3. La jerarquía de los remedios
Los remedios siguen un orden probado: el modelo primero (estrella, columnas inútiles eliminadas en Power Query, cardinalidades reducidas, fecha y hora automáticas desactivadas), las medidas después (variables VAR, filtros dirigidos), los visuales por último (menos por página — cada visual = una consulta). Esta lista resuelve la gran mayoría de las lentitudes reales, y se vuelve a cronometrar para medir la mejora. Zineb la aplica en este orden, sin saltarse pasos.
🔎 Ejemplo concreto — 🔎 Ejemplo concreto — La lista de higiene
El método de Zineb, en orden:
1. Analizador de rendimiento → Iniciar → Actualizar los objetos visuales
2. El más lento: ¿tiempo en «Consulta DAX» o en «Visualización»?
3. Power Query: eliminar las columnas NO utilizadas (cada una pesa)
4. Opciones: desmarcar «Fecha y hora automáticas»
5. Volver a cronometrar: medir la mejora.
Lectura: se actúa primero sobre el modelo, en el origen (Power Query), no sobre el visual.
Lección: volver a cronometrar forma parte del método — se mide la mejora.
Vocabulario de la sección
- Analizador de rendimiento
- Vista → Analizador de rendimiento: iniciar la grabación, actualizar los objetos visuales — cada visual muestra su tiempo detallado.
Ejemplo sencillo: Zineb cronometra allí su informe de ventas.
Lo que no es: adivinar la lentitud a ojo.
Reflejo: lentitud → cronometrar primero.
- Consulta DAX vs Visualización
- Los dos puestos cronometrados: consulta lenta = modelo/medida a revisar; visualización lenta = visual sobrecargado.
Ejemplo sencillo: Zineb ve que su tiempo está en la consulta DAX.
Lo que no es: una sola cifra sin detalle.
Reflejo: consulta → modelo/medida; visualización → visual.
- Higiene del modelo
- Eliminar las columnas inútiles (en Power Query, no después), reducir las cardinalidades, desactivar la fecha y hora automáticas.
Ejemplo sencillo: Zineb corta las columnas no utilizadas en el origen.
Lo que no es: importarlo todo «por si acaso».
Reflejo: cada columna importada pesa.
- Copiar la consulta
- Cada medida lenta se copia (Copiar la consulta) para analizarla en DAX Studio — la herramienta gratuita de los profesionales.
Ejemplo sencillo: Zineb copia la consulta del visual culpable.
Lo que no es: reescribir la medida al azar.
Reflejo: análisis fino → DAX Studio.
- Demasiados visuales
- Cada visual = una consulta: una página con 15 visuales envía 15 consultas con cada clic. La sobriedad es una optimización.
Ejemplo sencillo: Zineb aligera su página sobrecargada.
Lo que no es: apilar visuales para «que parezca rico».
Reflejo: menos visuales = menos consultas.
En la práctica — En la práctica — Cronometrar, diagnosticar, aligerar
- Vista → Analizador de rendimiento → Iniciar la grabación → Actualizar los objetos visuales: lea la clasificación de los tiempos.
- Analice el más lento: ¿tiempo en «Consulta DAX» (revisar la medida/el modelo) o en «Visualización» (simplificar el visual)?
- Higiene: en Power Query, elimine las columnas que el informe NO utiliza; compruebe en Opciones que «Fecha y hora automáticas» está desmarcada.
- Vuelva a cronometrar tras la optimización: medir la mejora forma parte del método.
Guion paso a paso — optimizar como Zineb (7 min)
1) Vista → Analizador de rendimiento → Iniciar la grabación, y luego Actualizar los objetos visuales: cada visual muestra su tiempo. 2) Localice el más lento y mire el puesto dominante: «Consulta DAX» (modelo/medida) o «Visualización» (visual sobrecargado). 3) Vuelva a Power Query y elimine las columnas que el informe no usa. 4) Opciones → desmarque «Fecha y hora automáticas». 5) Reduzca el número de visuales de la página y vuelva a cronometrar para medir la mejora.
Si el culpable está en la consulta DAX, copie la consulta del visual (Copiar la consulta) para analizarla en DAX Studio.
Plantilla copiar y pegar — mi lista de verificación de rendimiento
1. Cronometrar: Vista → Analizador de rendimiento → Iniciar → Actualizar
2. Leer: ¿Consulta DAX (modelo/medida) o Visualización (visual)?
3. Modelo primero: Power Query → eliminar las columnas inútiles;
reducir las cardinalidades; Opciones → desmarcar «Fecha y hora automáticas»
4. Medidas después: variables VAR, filtros dirigidos
5. Visuales por último: menos por página (cada visual = una consulta)
6. Volver a cronometrar: medir la mejora.
Cronometrar
Zineb lanza el Analizador de rendimiento antes de cualquier optimización: el culpable queda señalado.
Modelo primero
Zineb corta las columnas inútiles en Power Query y reduce las cardinalidades.
Fecha y hora automáticas
Zineb desmarca la fecha y hora automáticas: se acabaron las tablas ocultas por columna de fecha.
Sobriedad
Zineb retira visuales de su página: menos consultas con cada clic.
✓ Buenas prácticas
- Cronometrar antes de optimizar (Analizador de rendimiento).
- Seguir el orden modelo → medidas → visuales.
- Eliminar las columnas inútiles en Power Query, en el origen.
✗ Errores frecuentes
- Adivinar la lentitud en lugar de cronometrarla.
- Dejar la fecha y hora automáticas (tablas ocultas, archivo obeso).
- Apilar los visuales (cada visual = una consulta).
Puntos clave
- Una lentitud no se adivina, se cronometra: el Analizador de rendimiento primero.
- Consulta DAX lenta = modelo/medida; visualización lenta = visual sobrecargado.
- El orden de los remedios: modelo → medidas → visuales.
- Cada columna importada pesa: elimine lo inútil en Power Query; desactive la fecha y hora automáticas.
Reto 48 h — aplícalo mañana
Como Zineb, pase un informe por el Analizador de rendimiento: identifique el visual más lento y su puesto dominante (consulta DAX o visualización). Elimine columnas inútiles en Power Query, desmarque la fecha y hora automáticas y luego vuelva a cronometrar y anote la mejora.
- Puedo cronometrar un informe y leer consulta DAX vs visualización.
- Conozco el orden de los remedios: modelo → medidas → visuales.
- Sé aligerar un modelo en el origen (columnas, cardinalidades, fecha y hora automáticas).
Preguntas frecuentes
Mi archivo .pbix es enorme: ¿cómo reducirlo?
Los sospechosos habituales: las columnas inútiles (sobre todo los identificadores únicos y los textos largos), las jerarquías de fechas automáticas (una tabla oculta por columna de fecha) y datos demasiado granulares (la hora cuando basta el día). La herramienta gratuita VertiPaq Analyzer (DAX Studio) lista el peso exacto de cada columna.
¿DirectQuery sería más rápido que la Importación?
Casi siempre lo contrario: la Importación (comprimida en memoria) es el modo más rápido. DirectQuery se justifica por la frescura en tiempo real o por volúmenes imposibles de importar — nunca por la velocidad.
¿Cuál es el buen orden de los remedios ante una lentitud?