Galera, Acredito que resolvendo o problema do nosso amigo, de repente resolva o meu também, há um mês aproximadamente também postei uma dúvida semelhante e as dicas para melhorar a performance até agora foram muito parecidas, usar o analyze na consulta, criar indices, aumentar work_mem com o comando set, etc.
Estou para fazer uma migração de um sistema do mssql para o postgresql, mas ainda estou com este problema de quando usa muitos joins ou views na consulta ela simplesmente demora um tempão e as vezes nem retorna os dados, reescrevi alguns sqls e melhorou um pouco, mas tem mais alguns sqls que vou tentar contornar criando outras tabelas e usando trigger para tentar contornar. Tentei aumentar as configurações do postgresql ao máximo para ele no mínimo usar swap do linux, não consegui, ou ele tem outro controle quando excede a memoria que está nos arquivos de configuraçao? Meu servidor Posgresql 8.1 está num Dell Poweredge 2900, 2 proc xeon, 4gb de ram e raid 5 com 3 hds, antes da migração ainda vou aumentar a memória para 8gb e trocar o raid5 para raid10, pra ver se consigo alguma otimização, e acredito que fazer migração para a versão 8.3 no momento vai trazer outros problemas que ainda não estou tendo. Vou continuar acompanhando a lista, estudando e fazendo testes para obter o sucesso almejado, com a ajuda de vocês, claro.... 2008/9/17 <[EMAIL PROTECTED]>: > Se suas consultas utilizam muitos agrupamentos experimente aumentar o > parametro work_mem > >> >> On Wed, 17 Sep 2008 17:13:56 -0300, "Rodrigo Monteiro" >> <[EMAIL PROTECTED]> wrote: >>> boa tarde Volpato >>> >>> Mais uma vez cara, muito obrigado pelo seu tempo. >> >> tamos aí! >> >>> >>> Como eu gero este explain que vc me disse? >> >> Rode a query: >> explain analyze select lalala ... >> >> Este comando vai rodar a tua query, e mostrar o que >> o postgres está fazendo internamente. A partir daí, >> vamos poder dizer se os índices estão sendo usados, >> e quanto tempo a ordenação está demorando. >> >> PS: Faça este comando duas vezes, e mande a segunda. >> Isto garante que os dados estejam em cache. >> >> >>> >>> No caso do order by com max() é porque a curvaabc tem como critério ou >>> quantidade, ou valor, ou lucratividade(preco-custo), o que me deram como >>> dica seria criar uma tabela e jogar estes valores lá já calculados e a >>> partir dela criar a query da curvaabc >> >> Pelo que eu vi, teu order by é com sum(totItem), ou >> coisa parecida. >> O max() estava em um campo do select, tente remover >> esta função e adicionar o campo no group by. >> >>> >>> e o reindex? você pode me dizer o que posso fazer? >> >> Basicamente, deixe agendado pra rodar o comando >> reindexdb nome_da_base. >> Veja a doc: >> http://www.postgresql.org/docs/8.3/static/sql-reindex.html >> >> >> PS: >> - quanto de memória vc tem ? >> - quanto de shared_buffers está setado no postgresql.conf? >> - quanto de work_mem ? >> >> >> []´s, ACV >> >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
