4.4 · Optimización y rendimiento (Performance Analyzer)

Nivel 4 · Diseño, seguridad y rendimiento

4.4Optimización y rendimiento (Performance Analyzer)

Objetivo: Cronometrar un informe, leer consulta DAX vs visualización y aplicar la lista de optimización que resuelve lo esencial de las lentitudes.
Tiempo estimado: 18 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

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.

Error frecuente de interpretación: «Va lento, añadamos RAM; mi página con quince visuales es perfecta; y voy a pasar a DirectQuery para ir más rápido». No, triple error. Se cronometra primero (Analizador de rendimiento) en lugar de adivinar o apilar hardware. Cada visual = una consulta: una página con quince visuales envía quince consultas — la sobriedad es una optimización. Y DirectQuery casi nunca es más rápido que la Importación: se justifica por el tiempo real o el volumen, nunca por la velocidad.
El orden de los remedios Cronometrar y luego ir del modelo hacia los visuales. Cronometrar Analizadorde rendimientoModelo Estrella,columnas, cardinalidadesVisuales Menospor página
Cronometrar y luego ir del modelo hacia los visuales.
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Zineb, controladora de gestión en Argel, no adivina la lentitud: abre el Analizador de rendimiento (Vista), inicia la grabación y actualiza los objetos visuales para leer el tiempo de cada uno. 2) Interpreta los dos puestos: consulta DAX lenta = modelo o medida a revisar; visualización lenta = visual sobrecargado — y puede copiar la consulta para DAX Studio. 3) Aplica la jerarquía de los remedios: el modelo primero (estrella, columnas inútiles eliminadas en Power Query, cardinalidades reducidas, fecha y hora automáticas desactivadas), las medidas después, los visuales por último (menos por página). Lección: se cronometra primero, se optimiza del modelo hacia los visuales y luego se vuelve a cronometrar para medir la mejora.

🔎 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

  1. Vista → Analizador de rendimiento → Iniciar la grabación → Actualizar los objetos visuales: lea la clasificación de los tiempos.
  2. Analice el más lento: ¿tiempo en «Consulta DAX» (revisar la medida/el modelo) o en «Visualización» (simplificar el visual)?
  3. Higiene: en Power Query, elimine las columnas que el informe NO utiliza; compruebe en Opciones que «Fecha y hora automáticas» está desmarcada.
  4. Vuelva a cronometrar tras la optimización: medir la mejora forma parte del método.
Un método de diagnóstico con herramientas — se acabó el «va lento» sin culpable identificado.

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.

Lista de salida de la sección
  • 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).
Autoevaluación 1-5: ¿cronometro antes de proponer un remedio?Autoevaluación 1-5: ¿he cortado las columnas inútiles en el origen (Power Query)?

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.

Comprueba tu comprensión

¿Cuál es el buen orden de los remedios ante una lentitud?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 4Preguntas inéditas y más difíciles para validar tus conocimientos