Richard_Zhao
2016-03-08 07:17
采纳率: 100%
浏览 2.4k

Oracle删除数据的效率问题

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • devmiao 2016-03-08 07:23
    已采纳
    点赞 打赏 评论
  • Deng_bing 2016-03-08 07: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条数据提交一次

    点赞 打赏 评论

相关推荐 更多相似问题