欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

请教oracle数据库有90万,用where删除最快方法

更新时间: 2014-01-05 02:11:47 责任编辑: Author_N1

 

请问oracle数据库有90万,用where删除最快方法
表1  user    字段  cn(char)  。。 。。 。。 后面好几个其他内容
表2  temp    字段  cn(char)    bz(int)


我现在想根据      user.cn = temp.cn  and temp.bz=0 的全部删除

有90万的数据,执行要好久,有没有一句语句能快点
--参考方法--
如此多的数据不能使用delete删除,请问基表数据总共有多少,建议使用如下两条命令。
create table t_table_new as select * from t_table where user.cn = temp.cn  and temp.bz<>0;
将需要的数据通过create创建出来,然后truncate原表,然后rename将原表另命名,将新表改名为原表。
注:要注意原表的约束条件、索引之类的不会通过create...as select创建,需手动创建。(谨记),建议晚上操作。
当然,若temp.bz<>0;不多的话,也可以Insert into t_table select * from t_table_new;
--参考方法--
alter table table_name nologging;
delete from table_name where ......;
alter table table_name logging;

--参考方法--
1楼这样比较科学
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:47
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6812/
本文WWW.DOC100.NET DOC100.NET版权所有。