在使用delete语句删除数据时,数据库是要做日志记录的,以便将来可以恢复数据,可是我在删除上百万条数据时,十分缓慢甚至死机,请问有没有什么好方法?
网友观点一:
create or replace procedure delete_table is i number(10); begin for x in (select * from emp where DEPTNO like 'a%') loop delete emp where emp.id = x.id i:=i+1; if i>1000 then commit; i:=0; end if; end loop; exception when others then dbms_out.put_line(sqlcode); rollback; end delete_table; |
|
这个是我平常用来批量删除数据,每500条数据提交一次。 DECLARE CNT NUMBER(10):=0; I NUMBER(10); BEGIN SELECT COUNT(*) INTO CNT FROM ep_arrearage_bak WHERE TO_CHAR(DF_DATE,'MM')='01'; 版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有
|