Mozart Hasse escreveu: [é meio off-topic ao assunto inicial mas...]
> No meu caso o que sempre fez e continua fazendo uma falta desgraçada no > Postgres > é um otimizador decente. Bem que se podia aproveitar a idéia aplicada no > Oracle ou no SQL Server e ter um cache de planos, reduzindo o número de > compilações. Esse tempo hoje é relativamente pequeno (e insuficiente) no > Postgres, exatamente porque ele precisa fazer isso a cada consulta. Se puder > gastar mais tempo e aproveitar esse processamento (como o Oracle e o SQL > Server fazem faz tempo), talvez ele se torne viável para mais aplicações. > Isso já existe: chama-se comandos preparados (aka _prepared statements_). É claro que você precisa manter a conexão mas nada que um aglomerador de conexões (aka _pool_) não resolva. Como você mesmo disse, o tempo é relativamente pequeno em aplicações Web e OLTP; em OLAP, algumas consultas com dezenas de junções esse tempo é significativo (aumenta 2^n mas é para isso que temos o GEQO) mas mesmo assim bem inferior ao de execução da consulta. > Outra coisa que ajudaria bastante seria a coleta de estatísticas mais > detalhadas para uso do otimizador, como dados sobre correlação entre valores > de campos dentro da mesma tabela (como o Oracle e o SQL Server fazem faz > tempo). Isso obviamente consome um tempo, porém nem se compara com o > desperdício que o Postgres faz com as estimativas furadas dele. > É fácil falar do otimizador mas é difícil mexer nele. ;) Já tivemos essa discussão a um tempo atrás mas em minha opinião, eu não importo se o número de registros indicados na estimativa seja muito diferente dos números reais (afinal de contas, é uma *estimativa*!); o que me incomodaria é se por essa estimativa ser bem diferente do real, eu tenha um plano de execução que não é o ideal. Se eu me lembro bem, nenhuma das consultas apresentadas por você produzia um plano que não era ideal. -- Euler Taveira de Oliveira http://www.timbira.com/ _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral