La situation se présente comme suit:transaction SQL affectant une grande quantité de lignes
Un grand système client de production/serveur où la table d'une base de données centrale a une certaine colonne qui a eu NULL comme valeur par défaut, mais a maintenant 0 par défaut valeur. Mais toutes les lignes créées avant ce changement de cours ont toujours une valeur nulle et cela génère beaucoup de messages d'erreur inutiles dans ce système.
solution est évidemment plus simple:
update theTable set theColumn = 0 where theColumn is null
Mais je suppose que ça va prendre beaucoup de temps pour effectuer cette transaction? En dehors de cela, y aura-t-il d'autres problèmes auxquels je devrais penser avant de faire cela? Cette grosse transaction va-t-elle bloquer toute la base de données, ou cette table particulière, pendant tout le processus de mise à jour?
Cette table particulière a environ 550k lignes et 500k d'entre eux a une valeur nulle et sera affectée par l'instruction sql ci-dessus.
Autre point: Exécutez cette mise à jour "after hours", c'est-à-dire lorsque la base de données est la moins active. –
550k lignes n'est rien. La «grande quantité de lignes» commence quelque part autour de 100M. –