Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 18h47   #1
Modérateur
 
Avatar de ymoreau
 
Homme Yoann Moreau
Ingénieur en laboratoire de recherche
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations personnelles :
Nom : Homme Yoann Moreau
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur en laboratoire de recherche
Secteur : Enseignement

Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 1 130
Points : 1 130
Par défaut Réécrire un champ+table-toast sur disque

Bonjour,
Je suis confronté à un problème que j'ai retrouvé sur le net mais sans jamais voir de solution évidente (exemple : ce post).

J'ai une table avec un champ texte et un champ tsvector, qui utilise une table toast. Dans une première base où je génère la colonne tsvector après avoir inséré toutes mes données texte.
Par contre dans une autre base où mon champ est généré au fur et à mesure avec un trigger, la taille est bien plus importante et surtout beaucoup plus répartie dans le toast.

Pour être certain qu'il n'y ait pas d'erreur dans mes données, j'ai fait ceci :
Code :
SELECT sum(octet_length(text)) AS total_text, sum(octet_length(text_tsvector::text)) AS total_tsvector FROM docs;
Mes deux bases renvoient exactement les mêmes valeurs.

Est-ce qu'il y a un moyen de "nettoyer" ces données pour limiter les espaces vides (dans les pages si j'ai bien compris) ?
Mis à part un dump/drop/load =/ (lu sur ce blog mais date de 2006).

Edit : en fait je n'avais fait un VACUUM FULL que sur la seconde base (qui avec un reindex avait réduit la taille de la base toujours en restant bien au dessus de la première). En faisant un VACUUM FULL sur la première base une table toast a bien gonflé, je suppose que les stats de pg_class n'étaient pas à jour. Donc en fait mes tailles de tables sont plus proches qu'au départ, sur la première base elle reste quand même à 2Go de plus alors que les longueurs de champ sont strictement les mêmes.
ymoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h36.


 
 
 
 
Partenaires

Hébergement Web