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 from
comando 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_catalog
y tablas eninformation_schema
. Así que intente ver si es alguno de esos eliminando esas restricciones en laWHERE
clá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í.