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
