Tengo instalación local de la base de datos 9.1 con pocas tablas que tenían cca. 300 millones de registros y la base de datos creció a unos 20 GB. Luego emití un delete fromcomando para eliminar todos los registros (debería haberlo usado truncate, pero no lo sabía). Así que hice un vacío completo en mi base de datos para recuperar espacio en disco, pero simplemente no ayuda. Mi problema parece idéntico a este , pero no se proporciona ninguna solución. Ya he revisado este hilo y la documentación sobre "recuperar espacio en disco" , pero todavía no puedo encontrar una solución. Yo uso este código para obtener el tamaño de todas las tablas
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 15;
Sin embargo, totalizando menos de 1 GB
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database
todavía muestra unos 20 GB. Cualquier consejo muy apreciado.
pg_catalogy tablas eninformation_schema. Así que intente ver si es alguno de esos eliminando esas restricciones en laWHEREcláusula. Muestre su versión exacta de PostgreSQL (SELECT version()) y qué está haciendo exactamente para "aspirar la base de datos completa", es decir, el comando exacto. Si es posible, ejecuteVACUUM FULL VERBOSE;(sin argumentos) y pegue el resultado en algún lugar y luego enlace a él aquí.