Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je dois rajouter une colonne sur un table mère (en PG 9.6) possédant un grand nombre de tables filles, qui sont de plus assez sollicitées. La colonne à ajouter est basique, pas de valeur par défaut ni de not null.
Pour ajouter une colonne il faut avoir un lock exclusif sur la table mère et ses filles mais je ne sais pas bien comment cela va se passer...
Est ce que PG va attendre que toutes les tables filles soient "verrouillables" en même temps pour faire la mise à jour ou bien va t'il les verrouiller au fur et à mesure que cela est possible ?
Mon inquiétude est qu'avec les sollicitations que nous avons sur les tables filles, la colonne ne puisse jamais être ajouter, faute de pouvoir avoir un lock exclusif sur toutes les tables en même temps
Merci
Hors ligne
Bonjour,
Postgres essaiera d'obtenir un verrou sur toutes les tables héritées en même temps. Il devrait réussit à obtenir ce verrou étant donné qu'il n'en relachera aucun avant d'avoir terminé ou que la requête soit annulée.
Vous pouvez toujours tester en positionnant au préalable un lock_timeout à une valeur suffisamment faible pour que cela soit acceptable si effectivement l'acquisition de tous les verrous prenait trop de temps.
Julien.
https://rjuju.github.io/
Hors ligne
ok merci, je vais effectivement utiliser lock_timeout et croiser les doigts !
Hors ligne
Pages : 1