Projeto · Banco de dados
Consulta SQL de 4,45 s para 0,21 s
A consulta que monta a ficha do cliente levava 4,45 segundos. Em vez de criar índice novo, troquei uma subconsulta agregada por LEFT JOIN LATERAL, e ela passou a levar 0,21 segundo.
- Cliente
- Reduzzi Brasil
- Meu papel
- Construí
- Estado
- Em produção, no banco unificado de atendimento e reuniões

Contexto
Um banco que junta atendimento e reuniões
Na Reduzzi Brasil, as conversas de WhatsApp e as reuniões ficavam espalhadas. Montei um banco único para as duas. Um serviço em Docker atualiza esse banco a cada 20 minutos, e um LLM analisa cada conversa em 17 campos.
A ficha do cliente junta tudo isso, e a consulta que monta essa ficha é a consulta central do banco.
O problema
Quatro segundos para abrir uma ficha
Justamente a consulta central, a que monta a ficha de cada cliente, levava 4,45 segundos. Ela usava uma subconsulta agregada.
Meu papel
Construí
Medi a consulta, reescrevi e medi de novo. Trabalhei sozinho, sem outro engenheiro revisando.
A virada
Reescrever antes de indexar
- Medi o tempo da consulta como ela estava: 4,45 segundos.
- Troquei a subconsulta agregada por LEFT JOIN LATERAL.
- Não criei índice novo. O ganho veio só da forma da consulta.
- Medi de novo: 0,21 segundo.
Resultado
Antes e depois
- de 4,45 segundos para 0,21 segundoTempo da consulta central da ficha do cliente.
- 95%De queda no tempo da consulta.
- 0 índices novosO ganho veio só da reescrita.
- 11 h para cerca de 2 hNa rodada de análise do mesmo banco, quando passei de 8 para 24 chamadas simultâneas ao LLM.
Limites
O que este projeto não prova
- É uma consulta, em um banco. Não é comparação com outros sistemas.
- A medida é de antes e depois da reescrita, no mesmo banco. Não é teste de carga.
- Trabalhei sozinho. Nenhum outro engenheiro revisou a consulta.
Stack
- SQL
- LEFT JOIN LATERAL
- Docker
- Python
- LLM