SequenceBlog

Engenharia

Reescrevendo o motor de relatórios: de 8 segundos para 400ms

Rafael Souza·08 de julho de 2026·1 min de leitura

O motor de relatórios

Os relatórios de DRE e fluxo de caixa eram, de longe, a parte mais lenta do produto. Esta é a história de como resolvemos isso.

Diagnóstico

Usando EXPLAIN ANALYZE, identificamos que 90% do tempo era gasto em joins não indexados entre lançamentos e categorias, repetidos para cada mês do período consultado.

A correção

Resultado

O relatório de DRE anual, que levava até 8 segundos para carregar, agora responde em menos de 400ms.

#performance#dados#tutorial

Rafael Souza

Engenheiro de Software sênior, curte falar sobre arquitetura, performance e as decisões (nem sempre óbvias) por trás delas.

Comentários

Rafael Souza10 de julho de 2026

Boa pergunta, Carla! Usamos REFRESH MATERIALIZED VIEW CONCURRENTLY — exige um índice único na view, mas evita bloquear leituras.

Carla Nunes09 de julho de 2026

Excelente writeup! Vocês usam materialized view refresh concorrente ou bloqueia leitura durante o refresh?

Deixe um comentário

Posts relacionados