Mozart Hasse escreveu:

> O otimizador do Postgres costuma fazer péssimas escolhas em tabelas
> grandes quando o default_statistics_target é muito baixo. Cansei de ver ele 
> apanhar mais do que cão sem dono do SQL Server por escolher planos ridículos
> quando deixei esse valor padrão. 
> 
O valor padrão para este parâmetro é medíocre mesmo. Já houve várias
discussões sobre aumentar este valor para um valor mais condizente com a
realidade mas por falta de provas (aka testes) -- que isso não aumentará
o tempo de planejamento para ter o mesmo benefício -- ainda não
decidiram se vão aumentá-lo na próxima versão.

> Deixe seu default_statistics_target=1000 e veja se melhora.
> 
Não faça isso! As consultas que utilizam uma coluna com o parâmetro com
esse valor vão demorar bem mais para serem planejadas desnecessariamente
sem falar em mais trabalho para o ANALYZE. Dependendo da distribuição
dos valores da coluna e da quantidade de valores distintos valores até
no máximo 150 ou 200 são suficientes; normalmente, utilize entre 30 e
100 para tabelas maiores *e* que não estejam estimando o número de
tuplas retornadas próximo do valor exato (um EXPLAIN ANALYZE pode te
dizer isso).


-- 
  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

Responder a