Loading

oracle列删除

1.直接删除列

##如下方式可以直接删除某个表上不需要的列,当然我们在删除过程中尽量的带上checkpoint选项,尽力避免过多的undo征用

alter table t1 drop column name checkpoint 2;;

##如果在删除过程中数据库掉电,对应的表变成了invalid,使用以下命令继续删除

alter table t1 drop column name continue;

 

2.设置unused,业务空闲再实际删除

##这种方式,是极力推荐的,避免了业务高峰期对生产业务的影响,也能满足对应的业务需求

正常业务中,如果我们想要删除某个表上的大列的时候尽量避免alter table t1 drop column name;而是尽量采用set unused;然后再业务空闲的时候再次删除

SQL> alter table TABELA_COL_INV set unused(col3);

在空闲状态下执行一下操作,尽量添加checkpoint,尽可能的避免一次写入多量undo,这里的2代表每删除2行数据做一次commit提交

SQL> ALTER TABLE TABELA_COL_INV DROP UNUSED COLUMNS checkpoint 2;

posted @ 2022-05-15 17:46  李行行  阅读(1050)  评论(0编辑  收藏  举报