- A menos que SQLite esteja sendo executado em modo "auto_vacuum = FULL". Quando uma grande quantidade de dados é excluído da base de dados, deixa-se um grande espaço vazio, ou páginas "livres" na base de dados. Isso pode causar uma base de dados ocupando mais espaço em disco do que o estritamente necessário.
Executando VACUUM para reconstruir a base de dados recupera-se este espaço e reduz o tamanho do ficheiro de base de dados. - Inserções, atualizações e exclusões frequentes podem causar um arquivo de banco de dados fragmentado - onde os dados de uma única tabela ou índice estará espalhado em todo o arquivo de banco de dados.
Execução do comando VACUUM garantimos que cada tabela e índice serão armazenados de forma contínua dentro do arquivo de banco de dados. Em alguns casos, VACUUM pode também reduzir o número de páginas parcialmente cheios no banco de dados, reduzindo o tamanho da base de dados adicionalmente. - Normalmente, o page_sizer e o suporte(ou não) ao auto_vacuum devem ser configurados antes do arquivo de banco de dados ser criado. Entretanto, quando o modo write-ahead log não esta habilitado, as opções page_size e/ou auto_vacuum de um arquivo de banco de dados já existente podem ser modificados usando as PRAGMAS e logo em seguida o arquivo sofrerá o VACUUM. Caso a propriedade write-ahead log esta habilitada apenas a funcionalidade de auto_vacuum pode ser modificada usando o VACUUM.
O comando VACUUM pode alterar os IDs das células que não possuirem uma INTEGER PRIMARY KEY explicita.
O VACUUM falhará caso exista alguma transaction aberta, ou se houver uma ou mais instancias do SQL quando esse comando rodar.