7.7.1. vacuum

El proceso que realiza la limpieza de la base de datos en PostgreSQL se llama vacuum. La necesidad de llevar a cabo procesos de vacuum periódicamente se justifica por los siguientes motivos:

•    Recuperar el espacio de disco perdido en borrados y actualizaciones de datos.

•    Actualizar las estadísticas de datos utilizados por el planificador de consultas SQL.

•    Protegerse ante la pérdida de datos por reutilización de identificadores de transacción.

Para llevar a cabo un vacuum, deberemos ejecutar periódicamente las sentencias vacuum y analyze. En caso de que haya algún problema o acción adicional a realizar, el sistema nos lo indicará:



demo=# VACUUM; WARNING: some databases have not been vacuumed in 1613770184 transactions HINT: Better vacuum them within 533713463 transactions, or you may have a wraparound failure. VACUUM demo=# VACUUM VERBOSE ANALYZE; INFO: haciendo vacuum a "public.ganancia" INFO:"ganancia":seencontraron 0 versiones de filas eliminables y 2 no eliminables en 1 páginas DETAIL: 0 versiones muertas de filas no pueden ser eliminadas aún. Hubo 0 punteros de ítem sin uso. páginas están completamente vacías. CPU 0.00s/0.00u sec elapsed 0.00 sec. INFO: analizando "public.ganancia" INFO: "ganancia": 1 páginas, 2 filas muestreadas, se estiman 2 filas en total VACUUM