2015-03-23 16:13 GMT-03:00 Tiago José Adami <[email protected]>: > O autovacuum parece não estar encontrando uma janela disponível > (o espaço utilizado em disco diminui > pouco ou nada comparado a um VACUUM explícito), então me obrigo a > colocar um agendamento no cron toda madrugada, deixando o banco > temporariamente inoperante. > > Um VACUUM convencional não diminui o tamanho dos arquivos (de fato diminui em situações muito específicas, mas podemos dizer que isso é irrelevante no momento). Além disso, o VACUUM *não deixa o banco inoperante*. Já o VACUUM FULL faz as duas coisas: (1) diminui o tamanho dos arquivos, se possível, e (2) realiza um bloqueio das tabelas enquanto as processa.
Logo, você está executando um VACUUM FULL? Se sim, isso pode ser uma prática bem ruim, o ideal é tentar otimizar o autovacuum para que este dê conta do recado. > Há como saber se o autovacuum está sendo eficiente? Tipo: um SELECT > que mostre quais tabelas precisam de VACUUM? > > Dessa forma eu faria uma checagem e executaria somente quando necessário. > Veja a tabela pg_stat_all_tables (e pg_stat_user_tables) [1], as colunas n_live_tup e n_dead_tup podem ser usadas (e de fato é o que o autovacuum usa). Você também pode usar as consultas para fazer uma análise do inchaço de tabelas [2] e índices [3]. [1] http://www.postgresql.org/docs/current/static/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW [2] https://wiki.postgresql.org/wiki/Show_database_bloat [3] http://blog.ioguix.net/postgresql/2014/03/28/Playing-with-indexes-and-better-bloat-estimate.html Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
