oracle 踩过的坑

413 阅读1分钟

向现有表(数据量比较大)添加字段并带默认值

方法1

alter table t_tmp add exposure number(11) default 0;

方法2

alter table t_tmp add exposure number(11) ;
alter table t_tmp modify exposure default 0;
update t_tmp set exposure = 0 ## 注意这里

方法1、2比较

描述一下我这边的现象 表的数据量大概1亿出头 ,字段30多个 方法1耗时半小时左右,长时间的执行,触发了报警 方法2 步骤1、2毫秒级完成,update操作需要特别处理,分批次,全量更新耗时太长,极易触发报警。

结论

数据量比较大的情况下,建议方法2,切将最后更新分批次。