Vacuum - otimizando sua base de dados PostgreSQL
Vacuum libera espaço em disco utilizado pelos registros deletados de uma base de dados do PostgreSQL, que teoricamente não são mais necessários. Nesse artigo veremos em detalhes como utilizar essa excelente ferramenta.
Introdução
Durante uma operação normal do PostgreSQL, os registros
que são deletados ou atualizados não são fisicamente removidos
das tabelas, permanecendo presentes até a execução de um comando
chamado vacuum.
Assim é necessário realizar vacuum periodicamente, especialmente em tabelas freqüentemente usadas.
Quando vacuum estiver sem parâmetro, ele irá processar cada tabela do banco de dados, mas quando existe algum parâmetro no vacuum somente a tabela é processada.
Executa um vacuum e depois um analyze para cada tabela selecionada. Esta é uma forma de combinação para manutenção rotineira de scripts, veja ANALYZE para mais informações a respeito do processamento.
Somente vacuum, simplesmente reivindica espaço e o torna disponível para a reutilização.
Utilizando o Vacuum Analyze:
$ VACUUM ANALYZE tabela;
Se você quiser ver o status, utilize o parâmetro VERBOSE:
$ VACUUM ANALYZE VERBOSE tabela;
Realiza um processamento mais extensivo, inclusive movendo as tuplas através de blocos, para tentar compactar a tabela ao número mínimo de blocos. Esta forma é muito lenta e exige um bloqueio exclusivo em cada tabela enquanto estiver sendo processada:
$ VACUUM FULL;
Se você quiser ver o status, utilize o paramento VERBOSE:
$ VACUUM FULL VERBOSE;
Assim é necessário realizar vacuum periodicamente, especialmente em tabelas freqüentemente usadas.
Quando vacuum estiver sem parâmetro, ele irá processar cada tabela do banco de dados, mas quando existe algum parâmetro no vacuum somente a tabela é processada.
Vacuum analyze
Executa um vacuum e depois um analyze para cada tabela selecionada. Esta é uma forma de combinação para manutenção rotineira de scripts, veja ANALYZE para mais informações a respeito do processamento.
Somente vacuum, simplesmente reivindica espaço e o torna disponível para a reutilização.
Utilizando o Vacuum Analyze:
$ VACUUM ANALYZE tabela;
Se você quiser ver o status, utilize o parâmetro VERBOSE:
$ VACUUM ANALYZE VERBOSE tabela;
Vacuum full
Realiza um processamento mais extensivo, inclusive movendo as tuplas através de blocos, para tentar compactar a tabela ao número mínimo de blocos. Esta forma é muito lenta e exige um bloqueio exclusivo em cada tabela enquanto estiver sendo processada:
$ VACUUM FULL;
Se você quiser ver o status, utilize o paramento VERBOSE:
$ VACUUM FULL VERBOSE;