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

Responder a