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

Responder a