データベース サーバは、2 つ以上のアルゴリズムが使用されている場合、または値が他のフラグメントに移動する場合は、インプレース変更アルゴリズムを使用しません。
ALTER TABLE 文に 2 つ以上の変更がある場合、データベース サーバは文の実行において最も低いパフォーマンスでアルゴリズムを使用します。
例えば、ALTER TABLE MODIFY 文が小桁整数 (SMALLINT) 型列を DEC(8,2) 列に変換し、整数 (INTEGER) 型列を CHAR(8) 型列に変換するとします。最初の列の変換はインプ レース変更操作ですが、2 番目の列の変換は遅い変更操作です。このような場合、データベース サーバは遅い変更アルゴリズムを使用してこの文を実行します。
例えば、2 つの整数列と次のフラグメント式を持つ表があるとします。
col1 < col2 in dbspace1, remainder in dbspace2
ALTER TABLE MODIFY 文を実行して整数値を文字値に変換する場合、データベース サーバは、変更前は、行 (4, 30) を dbspace1 に格納しますが、変更操作後は整数 4 <30 としてではなく、文字 “30” < “4” として、dbspace2 に格納します。