一个数千万条数据的表,使用ADO连接数据库,实用查询select * from table语句获得数据集,用adoquery.next对数据逐条进行处理,然后存入另外一个表,但是处理过程中非常慢,而且会出内存错误。这种方法的效果很差,有没有更好的方法可以处理类似问题?能不能不一下子读取那么多条数据集,分批500条来处理?

解决方案 »

  1.   

    用存储过程处理,不要用java程序处理了。
      

  2.   

    oracle 中也是可以分页处理的, 只不过不想mysql中那么容易, 你可一搜索一下但是如果你的业务很有规律就不要这么一条一条的处理,很是浪费资源的。可以向楼上所说的调用存储过程或函数来处理
      

  3.   


     oracle 通过rownum实现分页
      

  4.   

    存储过程处理是正道!!!
    减少网络TRIP,减少客户端的等待和WEB服务器压力。
    并且在存储过程中根据关键字段(如日期等)分段处理(每次处理一部分)。
      

  5.   

    那SQL SERVER+VC++遇到这种问题应该也是利用存储过程处理吧。困扰我好久的问题
    学习学习