Rodrigo Monteiro escreveu:
> Pessoal, eu tenho uma correção para fazer, o banco de dados do meu cliente 
> que eu disse que era de 4 GB na verdade tem 49GB, o sistema funciona há 3 
> anos com cinco lojas da rede e agora adiquiriu mais uma loja que será a 
> segunda maior da rede.
> Estamos desenvolvendo, além do gestor da loja, duas ferramentas, crm e supply 
> chain, vocês já podem imaginar o tamanho do 'Elefante', rs.
> 
> Eu já comentei aqui que o sistema é em PHP, além da demora do carregamento 
> dos processos, as querys que são executadas estão demorando muito, nós 
> fizemos, a pedido do cliente, uma versão do sistema para rodar com Sql Server 
> e a diferença é muito grande, rodando as mesmas querys. Não apresentamos os 
> resultados para o cliente ainda porque senão perderemos muito tempo tendo que 
> recriar a camada de acesso a dados...
> 
> Eu tenho certeza que o que falta para o meu banco em Postgres ficar rápido é 
> por culpa do meu conhecimento limitado nele. Com a ajuda de algumas pessoas 
> do grupo, principalmente do Volpato, eu já consegui uma melhora considerável 
> em algumas querys. Testando no nosso banco que tem apenas 3GB de tamanho.
> 
> O grande desafio começa amanhã, quando eu vou para este cliente tentar 
> melhorar a performance do sistema.
> 
> Eu sei que vocês teêm seus afazeres e que ninguém tem a obrigação de me 
> ajudar, mas eu gostaria de achar uma solução para o desempenho do banco, 
> dicas de como melhorar a performance do banco de dados, ferramentas extras ou 
> seja, tudo o que possa me ajudar nisso.
> 
> Amanhã eu postarei aqui os resultados das querys, as querys mais 'pesadas', 
> index, foreinkey e o tempo de resposta das mesmas.
> 
> Gostaria de conhecer pessoas interessadas em trocar figurinha na PGCon, tenho 
> experiência em ERP, CRM e SupplyChain, no que eu puder ajudar... estarei lá!
> 
> Abraço à todos!


Essas querys mais pesadas são views ? Se for, se vc esqueceu de colocar 
os parenteses no "from" ja esta perdendo performance.

exemplo :

from
(
    (
       (
          (
             (
                (
                   (tabela1 as t1 left join tabela2 as t2 on t1.cod = 
t2.cod)
                   left join tabela3 as t3 on t1.cod = t3.cod
                )
                left join tabela4 as t4 on t1.cod = t4.cod
             )
             left join tabels5 as t5 on t1.cod = t5.cod
          )
          left join tipos on t1.codtipo = tipos.codtipo
       )
       left join pessoa on t1.codpessoa = pessoa.codpessoa
    )
    left join tabela6 as tabela5 on t1.codr = t6.codr
)
left join produto on t1.codproduto = produto.produto;


Sem os parenteses cai uns 90%.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a