Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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 ). 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
Pages : 1