Dicas sobre Vacuum no Postgres

O Vacuum limpa e opcionalmente analisa um banco de dados e recupera a área de armazenamento ocupada pelos registros excluídos. Na operação normal do Postgres os registros excluídos ou tornados obsoletos por causa de uma atualização não são fisicamente removidos das tabelas, permanecem presentes até o comando Vacuum ser executado. Portanto é necessário executar o comando Vacuum periodicamente, especialmente em tabelas frequentemente atualizadas, sem nenhum parâmetro o Vacuum processa todas as tabelas do banco de dados correntes.

O comando Vacuum Analyze executa o Vacuum e depois o Analyze para cada tabela selecionada, esta é uma forma de combinação útil para scripts de rotinas de manutenção. O Analyze atualiza as estatísticas utilizadas pelo planejador para determinar o modo mais eficiente de executar um comando.

O comando Vacuum simples (sem o Full) apenas recupera o espaço, tornando-o disponível para ser reutilizado. Esta forma do comando pode operar em paralelo com a leitura e escrita normal da tabela, porque não é obtido um bloqueio exclusivo. O Vacuum Full executa um processamento mais extenso, incluindo a movimentação das tuplas entre blocos para tentar compactar a tabela no menor número de blocos de disco possível, esta forma é muito mais lenta e requer bloqueio exclusivo de cada tabela enquanto está sendo processada.

Por último temos a opção do Freeze, que seleciona um congelamento agressivo das tuplas, esta opção não é muito recomendada e é provável que seja retirada de futuras versões do Postgres.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s