En postgres yo he utilizados estas 2 formas, una para windows y otra para linux, y me ha funcionado bastante bien. Quizás haya otras formas pero con mis pocos conocimientos en postgres con esto pude volver a utilizar una tabla que tenia millones de registros y los borre de una, y cuando intentaba consultar algún registro demoraba muchísimo.
- Para windows
"C:\Program Files\PostgreSQL\9.3\bin\vacuumdb.exe" -a -U postgres -h 127.0.0.1
"C:\Program Files\PostgreSQL\9.3\bin\reindexdb.exe" -a -U postgres -h 127.0.0.1
- Para linux
#!/bin/bash
# reindexado
psql -U usuario postgres -c "reindex database rucaf"
# vacuum sobre todas las bases de datos
su postgres -c "vacuumdb -a"
# actualizacin de estadisticas
su postgres -c "vacuumdb -z rucaf"