Mozart Hasse escreveu:
Respondendo:

  
Ninguém se interessou e *provou* que aumentando o parâmetro vai trazer
benefício para todos.
    

Bom, passei um bom tempo expondo, perguntando e esperando descobrir o que é
prova suficiente para quem decide. Nessa última mensagem deu para ter uma
idéia, por mais que eu discorde que precise disso para decidir algo dessa
natureza.
  

Para falar com "quem decide", ou melhor, quem pode decidir mais rápido, vá direto às listas gringas.

[1] http://archives.postgresql.org/pgsql-hackers/2006-09/msg01521.php
[2] http://archives.postgresql.org/pgsql-patches/2007-11/msg00170.php
    

Em [1] não vi nenhuma crítica relevante contra valores altos em
estatísticas, muito pelo contrário. Pelo menos, vi sensatez no comentário
sobre ter estatísticas consolidadas de várias colunas em versões futuras.
Isso sem dúvida trará muito mais benefícios do que mexer em parâmetros
(apesar das duas coisas irem muito melhor juntas).
Em [2] não achei nada em favor do valor atual, muito pelo contrário.

De qualquer forma obrigado pela referência.
  

Em nenhum momento procurei defender os padrões atuais, as referências estão aí pra mostrar que muita coisa tem sido discutida, e pelo jeito a discussão ainda vai longe.
Vou tentar resumir o que eu entendo da posição dos desenvolvedores do Postgres. Os valores padrões devem servir a sistemas pequenos, rodar em várias plataformas com uma performance razoável, e ainda por cima ocupar pouco espaço. É uma equação muito complexa, e por essa razão, os valores padrões de memória (shared, work, maintenance...) são tão ridículamente pequenos.
Para qualquer sistema da vida real, você vai precisar especificar configurações de memória, bem como configurar as suas tabelas para terem estatísticas mais precisas em certas colunas, como o outro colega fez aumentando de 10 para 1000. Ele está certo em testar e fazer alterações.
Basicamente, o padrão não serve pra quase ninguém, mas roda em qualquer lugar; creio que seja essa a idéia do Postgres. Tanto que qualquer mudança nos padrões, por menor que seja, demora pra ser aceita e implementada.


  
mesmo usando 1000 ficou mais rápido sem as estatisticas...
    

Olhando os resultados, nota-se que neste caso o Postgres só escolheu um bom
plano quando as estimativas forneceram valores completamente fora da realidade
(estimado 13 encontrado 480000). Isso neste caso foi ótimo, mas acho absurdo
contar com isso como regra geral. Essa consulta pode até ficar mais rápida
sem estatísticas, mas teoricamente é de se esperar que muitas outras
consultas serão prejudicadas, enquanto que poucas vão (por puro acaso) se
beneficiar de estatísticas tão furadas. Provavelmente o planejador descartou
o plano ideal quando estatísticas sobre uma só coluna o induziram a erro.
Quanto a isso, nenhuma solução trivial à vista.
  

Fazer errado pra dar certo não dá. Concordo plenamente.

-- 

[]´s, ACV
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a