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 fromcommande 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_cataloget les tables dansinformation_schema. Essayez donc de voir si c'est le cas en supprimant ces restrictions dans laWHEREclause. 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.