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

Responder a