PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 18/06/2022 13:18:48

SAPIME
Membre

Table volumineuse

J'ai constaté que ma base de données a largement pris du volume. Dans mes investigations j'ai identifiée la table concernée qui posait problème.
J'ai exécuté une requête DELETE pour ne garder que les lignes de l'année en cours. Cette action a pris  toute une nuit (près de 8h). J'ai pu garder 420 000 enregistrement à la suite de cette action. J'ai regardé la taille après cette action elle est à 227 Go. Depuis,  plus rien,  aucune action de maintenance (VACUUM , REINDEX, TRUNCATE) n'aboutit. Toutes les requêtes de tronquage , de suppression, de réindexation sur cette table rentrent dans une boucle interminable. j’arrête même sans que l'action se termine
J'ai récupéré le "relfilnode" de la table dans la table "pg_class" et quand j'ai vérifié dans le répertoire physique de la Base de données j'ai vu 227 fichiers de 1 Go chacun liés à cette table.

Je voudrais réinitialiser cette table de sorte à libérer l'espace sur le disque. Par quel moyen puis-je le faire?

Hors ligne

#2 18/06/2022 14:38:21

dverite
Membre

Re : Table volumineuse

TRUNCATE est censé être assez rapide. Si c'est lent, il peut soit être en attente de verrous si d'autres transactions utilisent la table (c'est la première chose à vérifier), soit en attente des écritures disque.
Dans une autre session il faudrait regarder via pg_stat_activity l'état de la session qui fait le truncate, notamment les colonnes wait_event et wait_event_type.
Pour les verrous on peut aussi utiliser les requêtes suggérées ici: https://wiki.postgresql.org/wiki/Lock_Monitoring

Hors ligne

#3 18/06/2022 16:20:48

SAPIME
Membre

Re : Table volumineuse

Bonjour dverite,
effectivement j'ai vérifié à travers pg_stat_activity l'etat de la session de truncate.

La colonne "wait_event_type" a pour valeur "relation" et la colonne "wait_event" a pour valeur "Lock"

Hors ligne

#4 18/06/2022 16:28:14

rjuju
Administrateur

Re : Table volumineuse

Avez-vous suivui le lien pointé par Daniel permettant de voir la connexion qui détient le verrou bloquant, et ainsi de résoudre la situation ?

Hors ligne

#5 18/06/2022 19:22:27

SAPIME
Membre

Re : Table volumineuse

rjuju a écrit :

Avez-vous suivui le lien pointé par Daniel permettant de voir la connexion qui détient le verrou bloquant, et ainsi de résoudre la situation ?


Bonsoir Admin,
je viens de finir les actions après parcours du lien.

Effectivement mon problème est reolu

Hors ligne

#6 18/06/2022 19:24:11

SAPIME
Membre

Re : Table volumineuse

Merci infiniment Daniel
J'ai profité pour comprendre le principe des accès simultané et de comment cela est géré par POSTGRESQL.

Votre réponse m'a permis de solutionner mon problème

Hors ligne

Pied de page des forums