我用的数据库是ORACLE,要往库里面8张表分别插入1千多万条数据,总计1亿多条数据。我用JAVA程序,循环嵌套循环实现的。大概运行了3个多小时,向库中插入了1百多万条数据的时候,程序好像停止执行了,控制台没有输出,也不报错!库中数据也不增加了。程序并不复杂,应该是没有问题的,如果有问题,应该有异常信息在控制台抛出。不知道是什么原因?

解决方案 »

  1.   

    如果你和数据是通过程序一条一条地产生的,刚可以考虑批量提交,比如5000条commit一次,不要频繁地提交.
    如果数据本来就一个文本或EXCEL格式的,可以考虑用工具导入或bcp方式进行.
      

  2.   

    哦 我就是批量提交的 每9000条提交一次
    会不会是ORACLE的I\O操作太忙,导致我的程序处于挂起状态啊?
      

  3.   

    你数据来源是什么  这么多条总不会是java动态生成的吧 如果是那没什么办法了
      

  4.   

    检查oracle临时表空间是否太小
      

  5.   

    应该是内存溢出了吧
    java的内存垃圾回收赶不上使用吧
      

  6.   

    还是不要这样INSERT吧,不太可靠
      

  7.   

    lz的问题解决了吗?解决方案给出来学习一下呗~没解决的话,我想貌似在DB服务器上,利用类似bcp这样的数据库服务自带的命令,操作的效率能更高些,而且出错的风险小。因为在执行时多用一个工具,那么出错的风险就多一分。另外,在进行数据插入前,那1亿条数据存放在什么地方呀?如果是txt或csv文件的话,我觉得使用bcp更方便了,不过Oracle中似乎没有bcp,要不就用存储过程吧,总比用一个前端的开发语言强。