Je suis conscient de l'ajout de nouveaux champs à de grandes tables, il est recommandé de les ajouter à la fin des champs plutôt que quelque part au milieu et de se demander si quelque chose comme cela s'applique lors de la modification de types de champs?
J'ai une table avec environ un million d'enregistrements comportant plusieurs champs de type Varchare. Je voudrais les changer à Nvarchars, mais si je comprends bien, cela prendra du temps et des ressources, car les champs sont au milieu de la table et que SQL Server doit faire un tas de copier/réchérir.
Quel est un moyen efficace d'accomplir cela?
Une solution pourrait être à:
Ce ne sera pas plus rapide à long terme et nécessite toujours une fenêtre de maintenance (puisque vous ne souhaitez pas que les utilisateurs mises à jour des lignes que vous avez déjà mises à jour, à moins que vous ne mettriez un déclencheur temporaire en place pour contrer cela), mais cela évitera un Une vaste transaction et après quelques mises à jour vous donneront plus de prévisibilité sur la durée de la durée.
Vous pouvez faire la même chose en créant une nouvelle table et en faisant renommer qu'une fois que c'est fait ... tandis que cela évite la nécessité d'une étape 5, cela entraînerait une baratte encore plus de données et peut être plus problématique en raison de contraintes, de clés étrangères, de déclencheurs etc. qui pourraient être impliqués dans la table.