2 richard zhao Richard_Zhao 于 2016.03.08 15:17 提问

Oracle删除数据的效率问题

达人们,
我的Oracle10g数据库,有一张表里大概5000万的数据,我想删除其中的3000万数据,不知道如何删除可以高效一些,谢谢!
表里有一个索引是创建日期,还有一个索引是自增长的Sequence ID,不知该如何操作,望解答。

2个回答

devmiao
devmiao   Ds   Rxr 2016.03.08 15:23
已采纳
dengbing1234
dengbing1234   2016.03.08 15:25

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′ ANDROWNUM<=500;
COMMIT;
END LOOP;
END;

每500条数据提交一次

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!