我需要从表中删除大约200列(未编入索引)。该表包含大量记录(约300万)。我尝试了两种不同的方法来删除这些列:
但是,这两种方法都需要很长时间才能完成(大约30分钟/表),而且我们有10个表可以在生产环境中的4小时内完成此活动。
我想知道我可以使用任何不同的方式删除这些列,或者如果上面两个是唯一的方法,那么从表中删除这些列的最佳方法是什么: < / p>
在删除后,我们有任何命令重新组织表结构吗? 我正在使用oracle 11g。谢谢你的帮助。
答案 0 :(得分:0)
最好从特定表中的必需列创建表,如下所示
create table sample_cpy
as
select sno,name,dept from sample;
如果您只想使用下面的表结构
create table sample_cpy
as
select sno,name,dept from sample where rownum < 1;
以上方法不会创建任何index,primary,foriegn key etc
。
如果everthing似乎没问题那么你可以delete
源表。