Vocês sabem o que é perder tempo precioso com besteiras? Pois é, dá uma raiva, não é mesmo?. Na nova Intranet estamos usando todas as possibilidades do PostgreSQL 8.x para gerar nossos relatórios e estatísticas. Um de nossos clientes-teste, que tem mais de 80 milhões de registros na tabela de eventos nos ligou hoje cedo dizendo que os relatórios novos estavam mais lentos que os antigos (!!).
Começamos uma investigação completa sobre o que poderia ser… e não é que as tais funções agregadas do PostgreSQL deixam o sistema mais lento? Pelo que notei, quando você faz, por exemplo:
O PostgreSQL executa a função agregada em cada registro, mesmo se o conteúdo da mesma for estático, como no exemplo acima. O custo desse SELECT ficou astronômico. Mudei toda a validação de data/hora para dentro da Intranet… pelo menos 10x mais rápido.
Que ódio!!
![]()