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 25/05/2009 10:05:35

babak891
Membre

modification dans la clé primaire

Bonjour

J'ai une grosse table de 4 000 000 d'entrées environ en prod. et je suis obligé de modifier la clé primaire. Je dois donc supprimer la CP pour en créer une autre.
(pour le moment trois champ A,B,C qui dois passer à A,B,C,D)

La question est 
1) lors de la recréation de la CP il va mettre bcp. de temps pour vérifier les doublons ?
2) dois-je créer un index avant sur A,B,C,D ?
3) cette procédure bloque uniquement la table concernée ou la base entière ? ( je sais que des fois des manip. comme ça bloquent toute la base.)

merci d'avance Babak

Hors ligne

#2 25/05/2009 13:48:57

Marc Cousin
Membre

Re : modification dans la clé primaire

1: la création d'index, sur 4 millions d'entrées, ca devrait être raisonnablement rapide (mais ca dépend trop des données pour s'engager sur un chiffre smile ). Pour gagner du temps, mettre un gros maintenance_work_mem pendant la manip (il aura plus de ram pour faire les tris)
2: non, il suffit de faire les 2 alter table d'affilée. Quitte à faire ça, autant le mettre dans une transaction, histoire de pouvoir revenir en arrière si il y a des doublons (sait on jamais). La création de la contrainte rajoutera l'index qui va avec.
3: la table, mais si c'est une table importante, ca va indirectement bloquer une bonne partie du reste, bien sur, dès qu'une requête aura besoin de la table, elle se mettra en attente.


Marc.

Hors ligne

#3 26/05/2009 08:53:10

babak891
Membre

Re : modification dans la clé primaire

merci Marc

Hors ligne

Pied de page des forums