Tente isto: Retire o Sum(TotItem) do order by, voce já tem ele no select, e também inclua o CodFornec no group by.
[]'s Marcio select max(Fornecedor.CodFornec) as Codigo, Fornecedor.Nome as Descricao, Sum(Quantidade) as Quantidade, Sum(TotItem) as Preco, Sum(Quantidade * Lucratividade) as Lucratividade, Sum(Quantidade * Custo) as Custo , Sum(V_CurvaABC.Desconto) as Desconto from V_CurvaABC inner join ProdFornec using (CodProduto) inner join Fornecedor on (ProdFornec.CodFornec = Fornecedor.CodFornec) where CodEmitente = 1 and DtMovto between '15/09/2006' and '15/09/2007' group by Fornecedor.Nome,Fornecedor.CodFornec order by Preco Desc Limit 50 -----Mensagem original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de Rodrigo Monteiro Enviada em: quarta-feira, 17 de setembro de 2008 17:14 Para: Comunidade PostgreSQL Brasileira Assunto: Re: [pgbr-geral] banco de dados de sistema postgresql com 4GB! boa tarde Volpato Mais uma vez cara, muito obrigado pelo seu tempo. Como eu gero este explain que vc me disse? 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 e o reindex? você pode me dizer o que posso fazer? obrigado Wed, 17 Sep 2008 16:07:56 -0300, volpato <[EMAIL PROTECTED]> escreveu: > > On Wed, 17 Sep 2008 14:58:39 -0300, "Rodrigo Monteiro" > <[EMAIL PROTECTED]> wrote: > > Boa tarde à todos > > tarde! > > > Realmente, além do vacuum, eu precisei criar um índice para cada > > campo que eu uso em critério e em ordenação, isso melhorou > > consideravelmente o retorno da query, minha preocupação é o que pode > > acontecer com o tamanho do meu banco de dados com tantos índices, > > eles aumentam muito o > tamanho? > > Tenho algumas bases aqui que são 50-50 (metade índice, metade dados). > Seus índices vão crescer junto com seus dados, use com moderação... > Experimente remover índices de campos de ordenação, e veja como fica a > performance. > Nos servidores aqui eu deixo agendado semanalmente um REINDEX, que > recria os índices do zero. Isso evita que eles cresçam muito. > > > > > > eu estou com a versão 8.1 > > > > percebi também que se eu disparar uma query muito pesada dá pau no > > postgres, ai a query fica correndo em loop, só fechando e abrindo o > > postgres novamente para voltar ao normal é a versão ou minha máquina? > > > > isso aconteceu no cliente algumas vezes, pelo relato dele, ao chamar > > um relatório pesado, algumas vezes ninguém mais conseguia usar, só > > reiniciando a máquina, lá no cliente é a 8.2 > > Definitivamente, isso não é normal. > Pra gente te ajudar, mande as mensagens de erro. > Pode ser que vc tenha algum problema de memória ou disco. > > > query > > > > select max(Fornecedor.CodFornec) as Codigo, Fornecedor.Nome as > > Descricao, > > Sum(Quantidade) as Quantidade, Sum(TotItem) as Preco, Sum(Quantidade > > * Lucratividade) as Lucratividade, Sum(Quantidade * Custo) as Custo > > , Sum(V_CurvaABC.Desconto) as Desconto from V_CurvaABC inner join > > ProdFornec using (CodProduto) inner join Fornecedor on > > (ProdFornec.CodFornec = Fornecedor.CodFornec) where CodEmitente = 1 > > and DtMovto between '15/09/2006' and '15/09/2007' > > group by Fornecedor.Nome order by Sum(TotItem) Desc Limit 50 > > Me parece estranho esse max() para o código de fornecedor. > Acho que bastaria adicionar este campo no group by. > Para esta query, vc iria precisar de índices em CodProduto, CodFornec > e DtMovto, e talvez em CodEmitente. > > Porém, sem as saídas do explain, são apenas chutes : > > >> > >> Sobre a performance, mande pra gente: > >> - tuas confs de memória do postgresql.conf > >> - especificações dos servers ibm > >> - saída do comando EXPLAIN ANALYZE <query> > >> > > []´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
