Bases de datos · Avanzado 1

Planes de ejecución e índices

Cómo leer planes, medir consultas y diseñar índices útiles sin perjudicar escrituras ni ocupar espacio innecesario.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Calidad de consultas II.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Planes de ejecución con Índices y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Las primeras secciones se leen sin instalar nada. Para practicar SQL prepara PostgreSQL o un DBMS equivalente.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Planes de ejecución y Índices?

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Aprenderás a mejorar consultas usando evidencia: medirás su comportamiento, interpretarás un plan de ejecución y decidirás cuándo un índice ayuda o solo añade costo.

Al terminar podrás
  • El tiempo observado y el plan explican problemas diferentes
  • Un índice acelera ciertos accesos y encarece cada escritura
  • La mejor consulta conserva el significado y reduce trabajo
01
Medir antes de cambiar

El tiempo observado y el plan explican problemas diferentes

EXPLAIN muestra la estrategia estimada; EXPLAIN ANALYZE, cuando el motor lo permite, ejecuta y compara estimaciones con filas reales. Una consulta lenta puede deberse a lecturas, CPU, bloqueos, red o falta de memoria, no solo a su texto.

01

Define una carga y datos representativos.

02

Compara filas estimadas y reales en cada operador.

03

Distingue latencia individual de capacidad bajo concurrencia.

Comprueba lo aprendido · 01

¿El operador con mayor costo estimado es siempre el responsable del tiempo real?

Mostrar respuesta

No. El costo es una estimación interna, no milisegundos. Se contrasta con tiempo, filas reales, lecturas y esperas antes de concluir.

02
Diseñar índices

Un índice acelera ciertos accesos y encarece cada escritura

Un índice B-tree ordena claves y favorece igualdades, rangos y ordenaciones compatibles. En un índice compuesto, el orden de columnas debe seguir los patrones de filtro y orden. Baja selectividad o tablas pequeñas pueden favorecer un recorrido completo.

01

Indexa consultas frecuentes, no columnas por costumbre.

02

Considera el prefijo y el orden de un índice compuesto.

03

Mide espacio, mantenimiento y costo de INSERT, UPDATE y DELETE.

Comprueba lo aprendido · 02

¿Por qué crear un índice por cada columna puede empeorar el sistema?

Mostrar respuesta

Cada índice ocupa espacio, debe actualizarse en las escrituras y añade opciones al optimizador. Además, varios índices simples no sustituyen siempre a uno compuesto adecuado.

03
Optimizar con método

La mejor consulta conserva el significado y reduce trabajo

Conviene filtrar temprano, pedir solo columnas necesarias, evitar transformaciones que oculten la columna indexada y revisar la granularidad de las uniones. Cada cambio se prueba con el mismo resultado esperado y varias cargas.

01

Una condición sargable permite buscar por el valor almacenado.

02

Paginar por una clave estable evita saltos costosos y duplicados.

03

Una mejora local no debe degradar el conjunto de trabajo.

Comprueba lo aprendido · 03

¿Por qué una consulta más corta no es necesariamente más rápida?

Mostrar respuesta

Porque la cantidad de texto no determina el trabajo físico. Importan el plan, los datos, los índices, las lecturas, la memoria y la concurrencia.

Resumen de la sección

Tu recorrido en tres ideas

  1. El tiempo observado y el plan explican problemas diferentes
  2. Un índice acelera ciertos accesos y encarece cada escritura
  3. La mejor consulta conserva el significado y reduce trabajo
PROFUNDIZACIÓN / LABORATORIO GUIADO

Diagnostica una consulta antes de indexar

Une selectividad, estadísticas, operadores físicos y costo de escritura para evitar la idea simplista de que “más índices” siempre significa “más velocidad”.

CASO

Un informe de pedidos por cliente y fecha tarda ocho segundos en producción, pero parece rápido con pocos datos de prueba.

Procedimiento

  1. Define resultado, carga, volumen y tiempo de referencia.
  2. Obtén el plan con filas estimadas y reales; identifica el primer punto donde divergen.
  3. Propón un índice o reescritura, repite la misma medición y comprueba el costo en escrituras.

Evidencia mínima

  • Mismo resultado y conjunto de datos.
  • Plan anterior y posterior con filas y lecturas.
  • Tiempo en frío, caliente y con una carga representativa.
Mostrar razonamiento modelo

Una respuesta sólida no empieza creando el índice. Primero demuestra si el costo proviene del acceso, la unión, una estimación equivocada o una espera. El cambio elegido debe explicar qué operador deja de hacer trabajo y qué mantenimiento añade.

Para ir más lejos

¿Qué cambiaría si el 40 % de los pedidos perteneciera a un solo cliente?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Crear índices sin medir consultas ni carga de escritura.

ERROR 02

Comparar tiempos con datos, caché o resultados diferentes.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diagnostica una consulta de pedidos por cliente y fecha: formula una línea base, interpreta el plan y propone un índice y una reescritura.

Mostrar pauta de corrección
Una respuesta sólida:
  • Conserva exactamente el resultado.
  • Relaciona operadores con filas reales y lecturas.
  • Mide beneficios y costos bajo una carga comparable.