使用 数据库 oracle 
语言 java
表 tab1
1、 有个c++程序 不停往tab1 里面插入数据(多线程) 
2、 我写程序每次会去取10w条记录 进行处理 
3、现在要保证 我每次取数据的时候 要有个顺序 先进的先取! 由于数据量很大 没有在sql 中order by 进行排序  只是很简单的 select * from tab1 where rownum <10w
想问一下有什么好的办法可以 在不影响效率的情况 有可以保证 执行的数据是顺序的?

解决方案 »

  1.   

    easy
    order by 没关系,只要给order by 的字段加个索引就好,10w的量不在啊
      

  2.   

    现在主要有个 问题  就是 有什么好的模式 可以对 jdk 的内存进行控制 应为每次取数据都会 new Object   , 但是 java中的 gc 回收的效率太慢了,
    现在最后会内存溢出,   有什么好的方法 可以进对象重用!   
      

  3.   

    gc   回收的效率问题?内存溢出? 我用多线程处理过3亿的复方丹参滴丸生产数据都没有这个问题的。可能原因2个
    1 是不是你的初始内存设置的太小了?修改一下JVM的参数
    -Xms512m -Xmx512m -XX:MaxPermSize=64m 呵呵,如果你没有512M,那256也将就,后面的64m就别增加了。
    2 如果上面的不行,那就是你的代码有问题哦!