在使用多个算法且值移动到其他分段时,数据库服务器不使用定点变更算法。
如果 ALTER TABLE 语句包含多个更改,那么数据库服务器在执行语句时将使用最低性能的算法。
例如,假定 ALTER TABLE MODIFY 语句将 SMALLINT 列转换为 DEC(8,2) 列,并将 INTEGER 列转换为 CHAR(8) 列。第一个列的转换是定点变更操作,而第二个列的转换是慢速变更操作。 则数据库服务器会使用慢速变更算法来执行此语句。
例如:假设您的表中有两个整数列,而且分段表达式如下:
col1 < col2 in dbspace1, remainder in dbspace2
如果运行 ALTER TABLE MODIFY 语句将整数值转换为字符值,那么数据库服务器会在变更前将行 (4, 30) 存储到 dbspace1 中,但在变更操作后会将其存储到 dbspace2 中,不是作为整数 4 < 30,而是作为字符 "30" < "4"。