2012/8/23 Bruno Silva <[email protected]>

> É Flávio, vontade não falta. Porém o sistema é grande e tenho mudado ele
> aos poucos - pessoalmente - para ser compatível com o 9.1, digamos que o
> desenvolvimento do sistema foi feito sem preocupação nenhuma com Casts (
> fora outros absurdos ).


Uma medida rápida para auxiliar nisso é aplicar os casts implícitos [1], o
ideal mesmo é alterar a aplicação, mas sei que nem sempre é possível.

Uma recomendação é aplicar os CASTS ao encontrar os erros, assim você só
aplica o que realmente é necessário para a aplicação e vai tentando ir
corrigindo-a com o tempo.


> Então estou com essa preocupação diária.
> Estava lendo diversos documentos, inclusive da lista, que dizem que o VF é
> muito honeroso. Então estou pensando se não é melhor fazer um dump/restore,
> ou um vacuum analyze e um reindexdb.
>

Em determinadas situações o VACUUM FULL pode até degradar (por um tempo) o
desempenho do banco.
Só use um VACUUM FULL se você realmente "precisa liberar espaço em disco",
e nada mais.
Aliás, tome cuidado também, que o processo de VACUUM FULL usa bastante
espaço em disco para ser feito.
Veja na documentação [2]:

Selects "full" vacuum, which may reclaim more space, but takes much longer
and exclusively locks the table.
...
The FULL option is not recommended for routine use, but may be useful in
special cases. An example is when you have deleted most of the rows in a
table and would like the table to physically shrink to occupy less disk
space. VACUUM FULL will usually shrink the table more than a plain
VACUUMwould. The
FULL option does not shrink indexes; a periodic REINDEX is still
recommended. In fact, it is often faster to drop all indexes, VACUUM FULL,
and recreate the indexes.


De qualquer forma, qual o motivo que você está tentando fazer isso? As
tabelas estão lentas de acessar? Rode um VACUUM VERBOSE e dê uma olhada,
talvez você não precise de nada, se não um simples VACUUM ANALYZE.

De qualquer forma, se você puder fazer um dump/restore, não há tanto
problema assim não, ele realmente limpa tudo, mas o CLUSTER é ainda melhor
porque ordena os dados das tabelas de acordo com algum índice.
Uma forma simples de você automatizar o CLUSTER geral é olhar na tabela
pg_stat_user_indexes para saber os índices mais usados de cada tabela (nem
sempre são de fato os melhores) ou então a chave primária.

Em geral o autovacuum fará bem todo esse trabalho por você (mais verdade
nas versões mais novas), então tente configurá-lo bem.


> Não estou interessado em fazer dump/restore por achar que dessa forma não
> estarei realmente aplicando o meio certo.
>
>
Não é que seja errado, mas dump/restore tem que ter parada total do
sistema, e garantia que NINGUÉM faça nenhuma atualização (você tem que
garantir por si só, o PostgreSQL não faz isso). Além disso, tem o que já
citei, o CLUSTER


[1] http://wiki.postgresql.org/wiki/File:Pg83-implicit-casts.sql
[2] http://www.postgresql.org/docs/9.1/static/sql-vacuum.html

--
Matheus de Oliveira
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a