Hola a todos,
Tengo una base de datos con más de 10 millones de registros en una tabla principal llamada Transacciones. Estoy intentando optimizar una consulta que realiza varias uniones y filtros, pero la ejecución toma mucho tiempo, alrededor de 20-30 segundos en un servidor decente.
La consulta que tengo actualmente es algo como esto:
Ya tengo índices en Transacciones(cliente_id, producto_id, fecha), Clientes(cliente_id, categoria), y Productos(producto_id, tipo). Sin embargo, parece que no están ayudando mucho. ¿Algún consejo sobre cómo mejorar esta consulta o algún ajuste de índice adicional que debería considerar? Agradecería cualquier ayuda para reducir el tiempo de ejecución. ¡Gracias de antemano!
Tengo una base de datos con más de 10 millones de registros en una tabla principal llamada Transacciones. Estoy intentando optimizar una consulta que realiza varias uniones y filtros, pero la ejecución toma mucho tiempo, alrededor de 20-30 segundos en un servidor decente.
La consulta que tengo actualmente es algo como esto:
SELECT
t1.transaccion_id,
t1.fecha,
t1.monto,
t2.nombre_cliente,
t3.descripcion_producto
FROM
Transacciones t1
JOIN
Clientes t2 ON t1.cliente_id = t2.cliente_id
JOIN
Productos t3 ON t1.producto_id = t3.producto_id
WHERE
t1.fecha BETWEEN '2023-01-01' AND '2023-12-31'
AND
t2.categoria = 'VIP'
AND
t3.tipo = 'Electrónica'
ORDER BY
t1.fecha DESC;
Ya tengo índices en Transacciones(cliente_id, producto_id, fecha), Clientes(cliente_id, categoria), y Productos(producto_id, tipo). Sin embargo, parece que no están ayudando mucho. ¿Algún consejo sobre cómo mejorar esta consulta o algún ajuste de índice adicional que debería considerar? Agradecería cualquier ayuda para reducir el tiempo de ejecución. ¡Gracias de antemano!