J'ai une installation locale de la base de données 9.1 avec quelques tables qui avaient cca. 300 millions d'enregistrements et la base de données est passée à environ 20 Go. Ensuite, j'ai émis une delete from
commande pour supprimer tous les enregistrements de celui-ci (j'aurais dû utiliser truncate
, mais je ne le savais pas). J'ai donc fait un vide complet sur ma base de données pour récupérer de l'espace disque, mais cela n'aide pas. Mon problème semble identique à celui-ci , mais aucune solution n'est proposée. J'ai déjà vérifié ce fil et la documentation sur "récupérer de l'espace disque" , mais je ne trouve toujours pas de solution. J'utilise ce code pour obtenir la taille de toutes les tables
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;
Cependant, pour un total inférieur à 1 Go
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database
affiche toujours environ 20 Go. Tout conseil très apprécié.
pg_catalog
et les tables dansinformation_schema
. Essayez donc de voir si c'est le cas en supprimant ces restrictions dans laWHERE
clause. Veuillez montrer votre version exacte de PostgreSQL (SELECT version()
) et ce que vous faites exactement pour "vider la base de données complète", c'est-à-dire la commande exacte. Si possible, exécutezVACUUM FULL VERBOSE;
(aucun argument) et collez la sortie quelque part, puis liez-la ici.