100 votes

ALTER TABLE ADD COLUMN prend beaucoup de temps

Je venais juste d'essayer d'ajouter une colonne appelée "location" à une table (main_table) dans une base de données. La commande que j'ai exécutée était

ALTER TABLE main_table ADD COLUMN location varchar (256);

La table principale contient > 2 000 000 lignes. Ça tourne depuis plus de 2 heures et n'est toujours pas terminé.

J'ai essayé d'utiliser mytop pour surveiller l'activité de cette base de données afin de m'assurer que la requête n'est pas bloquée par un autre processus de requête, mais il semble que non. Est-ce censé prendre autant de temps ? En fait, je viens de redémarrer la machine avant d'exécuter cette commande. Maintenant cette commande est toujours en cours. Je ne sais pas quoi faire.

-5voto

Bill Hulsizer Points 1

DB2 z/OS effectue instantanément une addition virtuelle de la colonne. Et place la table en statut Advisory-Reorg. Tout ce qui s'exécute avant la réorganisation obtient la valeur par défaut ou null s'il n'y a pas de valeur par défaut. Lorsque des mises à jour sont effectuées, elles étendent les lignes mises à jour. Les insertions sont effectuées étendues. La prochaine réorganisation étend chaque ligne non étendue et attribue la valeur par défaut à tout ce qu'elle étend.

Seule une vraie base de données gère bien cela. DB2 z/OS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X