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
