本人亲身经历:
大表5亿数据量;200个字段;误添加2个字段后删除(跑了5个小时跑不出来)后来研究发现大表做物理删除不可取,可使用alter table set unused column进行假删除操作,用空间换时间;
结论
1,alter table set unused column online 指定表的某列为不可用(可同时操作多列~)
2,alter table set unused column生效后不可用列已经不再属于表,但空间不会释放,需要重组方可释放
3,alter table set unused column的信息可用user_unused_col_tabs查询
4,alter table set unused column适用于高并发OLTP环境,在业务繁忙时,先运行此语句,待业务压力小时,然后用alter table drop unused columns真正删除不可用的列;
alter table drop column删除列消耗的时间明显要高于alter table set unused column
5,alter table set unused column指定某个LONG列不可用,不能添加其它LONG列
6,同一个表中不能同时存在2个LONG,其它LOB列不受其限制
7,通过alter table set unsed(表中列的列表,以逗号分割),可以同时指定多个列不可用
8, alter table set unused column cascade constraints配置某列不可用会递归删除定义的约束,发现指不指定cascade constraints选项都会递归删除其约束
9, 通过alter table set unsed(表中列的列表,以逗号分割),可以同时指定多个列不可用