oracle delete批量删除数据
在使用delete语句删除数据时,数据库是要做日志记录的,以便将来可以恢复数据,
可是我在删除上百万条数据时,十分缓慢甚至死机,请问有没有什么好方法?
这个是我平常用来批量删除数据,每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';
FOR I IN 1..TRUNC(CNT/500)+1 LOOP
DELETE FROM ep_arrearage_bak WHERE TO_CHAR(DF_DATE,'MM')='01' AND ROWNUM<=500;
COMMIT;
END LOOP;
END;
目录 返回
首页