2017-10-12 17 views
1

Comment DB2 modifie-t-il l'instruction de table pour l'ajout de plusieurs colonnes? Ajoute-t-il des colonnes de manière séquentielle et supprime-t-il les colonnes déjà ajoutées si un problème est rencontré lors de l'ajout d'une colonne? L'ordre des colonnes est-il préservé? Est-il préférable d'appeler l'instruction alter table plusieurs fois, une fois pour chaque colonne, la performance sage?Comment DB2 modifie-t-il l'instruction de table pour l'ajout de plusieurs colonnes?

Répondre

1

Vous pouvez ajouter des colonnes multiples en une seule fois comme ceci:

alter table jgrun.tmp   
add column col1 varchar(15)  
add column col2 int default 0 
add column col3 varchar(10) 

Vous pouvez supprimer plusieurs colonnes comme ceci:

alter table jgrun.tmp  
drop column col1   
drop column col2 

Si vous devez ajouter/déposer plusieurs colonnes, vous devez utiliser cette méthode pour perfomance (mieux sur un par un)

1

Avec Db2, le DDL (y compris alter table) est sous contrôle de transaction, donc si vous voulez faire plusieurs modifications (créer, drop, alter etc.) vous pouvez le faire en une seule unité de travail en fonction de la capacité de journalisation des transactions disponible. Ainsi, plusieurs instructions DDL peuvent être une seule action atomique, ce qui signifie que si l'une d'elles échoue, la transaction entière est annulée. En fonction de la plate-forme qui héberge les versions Db2 (Z/OS, i-series, Unix/windows) et Db2, il existe des limites au nombre de modifications distinctes d'une table qui peuvent se produire avant que Db2 ait besoin d'un réorganisation. Cela peut influencer le nombre d'instructions ALTER que vous utilisez (par exemple, ajouter plus d'une colonne dans une instruction unique).

Les performances peuvent ne pas être le facteur déterminant pour la manière dont vous regroupez les modifications. La récupérabilité, les considérations d'espace, les dépendances d'objet, le retour en arrière, les considérations HA/DR, les changements de fenêtre, les questions de disponibilité, la planification, les dépendances de code, peuvent déterminer la séquence que vous utilisez. Une taille unique ne convient pas à tous.