2017-10-12 6 views
1

Wie funktioniert die Anweisung DB2 alter table zum Hinzufügen mehrerer Spalten? Werden Spalten nacheinander hinzugefügt und bereits hinzugefügte Spalten gelöscht, wenn beim Hinzufügen einer Spalte ein Problem auftritt? Ist die Reihenfolge der Spalten erhalten? Ist es besser, die ALTER TABLE-Anweisung mehrmals aufzurufen, einmal pro Spalte, und zwar leistungsabhängig?Wie funktioniert die Anweisung DB2 alter table zum Hinzufügen mehrerer Spalten?

Antwort

1

können Sie Spalten mehrere in einer Zeit wie dieser hinzu:

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

Sie mehrere Spalte wie folgt entfernen:

alter table jgrun.tmp  
drop column col1   
drop column col2 

Wenn Sie müssen mehrere Spalten hinzufügen/Drop Sie diese Methode verwenden sollten für Leistung (besser auf eins nach dem anderen)

1

Mit Db2, die DDL (einschließlich alter Tabelle) ist unter der Kontrolle der Transaktion, wenn Sie also mehrere Änderungen vornehmen möchten (erstellen, ablegen, ändern usw.) Sie können dies in einer einzigen Arbeitseinheit tun, abhängig von der verfügbaren Transaktionsprotokollierungskapazität. So können mehrere DDL-Anweisungen eine einzelne atomare Aktion sein, das heißt, wenn einer von ihnen fehlschlägt, wird die gesamte Transaktion zurückgesetzt.

Abhängig von der Plattform, die Db2 (Z/OS, i-Serie, Unix/Windows) und Db2-Version hostet, gibt es Beschränkungen für die Anzahl der einzelnen Änderungen an einer Tabelle, bevor Db2 eine Reorganisation benötigt. Dies kann die Anzahl der von Ihnen verwendeten ALTER-Anweisungen beeinflussen (z. B. Hinzufügen von mehr als einer Spalte in einer einzelnen Anweisung).

Die Leistung ist möglicherweise nicht der entscheidende Faktor für die Gruppierung von Änderungen. Wiederherstellbarkeit, Platzbedarf, Objektabhängigkeiten, Back-Out, HA/DR-Überlegungen, Zeitfenster für Wechselfenster, Verfügbarkeitsangelegenheiten, Planung, Codeabhängigkeiten können die Reihenfolge bestimmen, die Sie verwenden. Eine Größe passt nicht allen.

Verwandte Themen