Flávio,
o que ainda não me caiu a ficha é entender porque um analyze diária
não seja o suficiente, imagine que tenho uma tabela com 1.000.000 de
registros (um movimento de 3 anos), então a cada dia ela recebe mais uns
1.000 registros, ficando com 1.001.000 ( + 0,1%). Como a variação de tamanho
é pequena e o tipo de dados (cardinalidade, nulos, etc...) é sempre similar,
por que teria a necessidade de analyze tão frequente visto que o plano de
execução não deve mudar com tanta frequência?
sds
Fábio Gibon
----- Original Message -----
From: "Gurgel, Flavio" <[email protected]>
To: <[email protected]>
Sent: Thursday, July 22, 2010 3:52 PM
Subject: Re: [pgbr-geral] Planejamento de Vacuum/Analyze x Performance
> [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.
Observe o que o Euler falou sobre REINDEX.
Se o número de tuplas removidas for pequeno, o REINDEX será opcional. Se o o
número for grande, o próprio índice ficará inchado.
Esse ganho de espaço em disco pode ser controlado pelo autovacuum. A
impressão de tabela "diminuindo" do VACUUM FULL parece boa, mas se o
autovacuum estiver funcionando adequadamente sua tabela tenderá a manter um
tamanho médio apenas um pouco maior. Apesar do maior espaço ocupado em
disco, compensa em relação ao custo de manutenção que você está criando.
> > [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.
Infelizmente não é.
Se suas tabelas tem alterações durante o dia, o número de ANALYZE necessário
é variável.
É melhor configurar isso no autovacuum e ele fará de acordo com a demanda
pra você, e não por tempo. Já tive problemas sérios com isso e o Euler foi o
cara que me ajudou a entender o processo do autovacuum.
> [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.
Se bem configurado, essa "oneração" é pequena. E compensa no final das
contas.
Compare:
sem autovacuum - durante o dia, suas consultas começam bem pela manhã e
pioram à tarde, podendo ficar péssimas.
com autovacuum - suas consultas manterão um ritmo similar durante o dia
todo.
> [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
Na verdade, é exatamente ao contrário. É nas "críticas" que ele fará a
diferença por estar ligado.
> considerar um
> autovacuum "bem configurado"?
Precisaremos entender o que é "tabela crítica" pra você, e como sua
aplicação funciona em detalhe.
[]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