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

Oracle删除数据的效率问题

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答 默认 最新

  • 已采纳
    devmiao devmiao 2016-03-08 07:23
    点赞 2 评论 复制链接分享
  • dengbing1234 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条数据提交一次

    点赞 1 评论 复制链接分享

相关推荐