shuilovejie 2011-07-27 18:08
浏览 1021
已采纳

Oracle 如何从几百万条数据中删除2000多条数据

有这么一个需求: 现在有一个订单表里面有306万多条数据,需要删除2011-07-01日所有的数据,大约2000条左右。应该如何操作。
 有如下需要注意的地方:
 1. 这个表没有进行分区
 2. 为oracle数据库
 3. 直接用delete语句 delete from c_orderline where ad_org_id=100004 and created = to_date('2011-07-01','yyyy-mm-dd') 运行了3个小时都没有出来结果
 4. 将created列加上索引也什么效果。

 如果你知道怎么解决,麻烦赐教,不胜感激。
  • 写回答

1条回答 默认 最新

  • xiewanxw 2011-07-28 16:19
    关注

    将created列加上索引,ad_org_id如果是,字符串类型这个条件也要改成这样
    ad_org_id=‘100004’
    这样的话应该会快一点

    delete from c_orderline where ad_org_id=100004 and created >= to_date('2011-07-01','yyyy-mm-dd') and created < to_date('2011-07-02','yyyy-mm-dd')

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题