liuge0_Mr 2009-03-13 14:01
浏览 298
已采纳

oracle 批量更新数据问题

public void updateAcState(ArrayList dataList){
    PreparedStatement ps =  null;
    try{
        int size = dataList.size();
        ps = con.prepareStatement("update js_personinfo p set p.ac_state = '3' where p.cif_no = ? and p.ac_no = ? ");
        for(int i = 0; i < size; i++){
            System.out.println("iii::"+i);
            String[] datas = (String[])dataList.get(i);
            ps.setString(1, datas[14]);
            ps.setString(2, datas[7]);
            ps.addBatch();
        }
        [color=red]ps.executeBatch();[/color]
    }catch (Exception e){
        new CollectExceptionHandler().handle(con, e);
    }finally{
        DataSourceUtils.closeStatement(ps);
    }
}

size 大小为30000,执行ps.executeBatch();没有反应,或者很慢

[b]问题补充:[/b]
radovi 你好,谢谢你的关注,我也有想过用两张表,把数据插入到一张表中,可是要把这些数据从原表中删除,也是很浪费时间的,不知还有没有好的办法

  • 写回答

4条回答 默认 最新

  • ncradovi 2009-03-24 17:07
    关注

    对于大数据的更新,肯定是要建立其他表来的快的。

    如果你还没有怎么明白,可以看看专家们是怎么分析的
    [url=http://oracle.banma.com/news/20080714/12856.shtml]http://oracle.banma.com/news/20080714/12856.shtml[/url]

    数据库的东西,呵呵,比较麻烦的,提醒哦,测试的时候最好备份

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料