← Projects

🗃️ SQL Query Optimization

Reducción crítica de tiempos de respuesta en consultas de producción mediante análisis de rendimiento y técnicas avanzadas de indexación.

Stack SQL Server 2019
Duración 2 semanas
Resultado -80% tiempo de respuesta
Tipo Performance Tuning

Consultas lentas en producción

Un sistema de reportería ejecutiva presentaba tiempos de respuesta de más de 45 segundos en consultas críticas. Los usuarios del área comercial no podían trabajar en tiempo real, lo que generaba pérdida de productividad diaria.


El problema raíz era una combinación de: ausencia de índices apropiados, queries mal estructuradas con subconsultas anidadas innecesarias y falta de particionamiento en tablas de alto volumen.

45+ seg

por consulta de reportería

Plan de optimización

T-SQL — Query Original (lenta)
-- ❌ Antes: subconsultas correlacionadas
SELECT p.nombre,
  (SELECT SUM(v.monto)
   FROM ventas v
   WHERE v.producto_id = p.id) AS total
FROM productos p
WHERE p.activo = 1;
T-SQL — Query Optimizada
-- ✅ Después: JOIN + índice compuesto
SELECT p.nombre,
  ISNULL(SUM(v.monto), 0) AS total
FROM productos p
LEFT JOIN ventas v ON v.producto_id = p.id
WHERE p.activo = 1
GROUP BY p.id, p.nombre;

-- Índice creado:
CREATE INDEX IX_Ventas_Producto
  ON ventas (producto_id)
  INCLUDE (monto, fecha);

Impacto medido

-80%
REDUCCIÓN TIEMPO

De 45 segundos a menos de 9 segundos promedio

12
QUERIES OPTIMIZADAS

Todas las consultas críticas del sistema

5
ÍNDICES CREADOS

Índices compuestos estratégicamente diseñados

¿Qué me dejó este proyecto?

El mayor aprendizaje fue entender que el plan de ejecución de SQL Server es la herramienta más valiosa para diagnosticar problemas de rendimiento. Antes de crear índices o reescribir queries, hay que entender exactamente qué hace el motor con cada consulta. También confirmé que las subconsultas correlacionadas son casi siempre un anti-patrón que se puede resolver con JOINs adecuados.

Ver Portfolio SQL → ← Todos los proyectos