Olá Flavio, segue comentários...e muito obrigado.

----- Original Message ----- 
From: "Gurgel, Flavio" <[email protected]>
To: <[email protected]>
Sent: Thursday, July 22, 2010 10:33 AM
Subject: Re: [pgbr-geral] Planejamento de Vacuum/Analyze x Performance


> [Gibon] se a tabela estiver com algum bloqueio (usuário deixou uma
> aplicação aberta,...) o truncate vai ficar "waiting...", para evitar
> isto eu valido se
> não há bloqueios antes de rodar o truncate. Ou então vou usar o nowait
> e tratar as exceções.

Ok.

> > - rodar um vacuum full para as tabelas (1), também validando a
> > disponibilidade de cada uma
>
> Por quê?
>
> [Gibon] Porque são tabelas com MUITAS linhas deletadas, então optei
> pelo FULL para fazer este "reorg" físico.

Se o seu VACUUM (sem FULL) funcionar corretamente, as linhas deletadas serão 
reaproveitadas pelo PostgreSQL.
O VACUUM FULL é muito oneroso, a não ser que suas tabelas sejam pequenas.
Note que após um VACUUM FULL é obrigatório fazer um REINDEX e ANALYZE.
Mas eu evitaria o VACUUM FULL.

[Gibon] Eu pensei em usar o vacuum full principalmente para ganhar espaço em 
disco, já que o vaccum (sem full) libera o espaço para uso mas não "encolhe" 
o arquivo fisicamente (abaixo do último registro válido...acredito que algo 
tipo HWM...). Quanto ao reindex e o analyze após o vacuum full, valeu pela 
dica, não sabia disto.

> Não há necessidade de fazer analyze se seu autovacuum estiver bem
> configurado. Ele faz essa tarefa pra você.
> Por que desativar o autovacuum durante o dia?
>
> [Gibon] Rodo o analyze por não ter o autovacuum ativo. E desativo o
> autovaccum para não ter processos concorrentes durante o dia
> (operacional), entendendo que o vacuum/analyze sendo executado a cada
> dia (durante a noite)
> é o suficiente para garantir performance e otimização de espaço.

Se as suas tabelas não tem alteração durante o dia, o autovacuum não fará 
nada, portanto, não precisa desligá-lo. Ele será apenas um processo que não 
consome quase nada de recursos.
Também não há necessidade de ANALYZE manual.
[Gibon] a questão é que em algumas GRANDES tabelas, e geralmente as que são 
o "coração" da aplicação, ocorre muita alteração durante o dia, então um 
vaccum nestas, em plena operação, eu acredito que pode onerar um pouco.

Todavia, se suas tabelas tem alteração durante o dia, o autovacuum bem 
configurado é a melhor escolha, mesmo concorrendo ele lhe será mais útil do 
que muitas manutenções noturnas.
[Gibon] E se eu deixar o autovaccum ativo e desativá-lo apenas em tabelas 
críticas, executando o vaccum nestas em uma rotina noturna, você acredita 
que seria uma boa abordagem? E ainda, quais as dicas para se considerar um 
autovacuum "bem configurado"?

[]s

Flavio Henrique A. Gurgel
tel. 55-11-2125.4786
cel. 55-11-8389.7635
www.4linux.com.br
FREE SOFTWARE SOLUTIONS
_______________________________________________
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

Responder a