如果记录计数很高且某些列已编入索引,如何在Oracle DB中优化插入速率?

时间:2014-07-24 14:56:59

标签: java oracle jdbc

我正在使用Java程序从文件中读取数据并写入表中。该表有4列索引,其中有大约1000万条记录。现在我的程序非常慢地插入记录。在花费5分钟处理文件之前。但现在需要超过30分钟。

请指导我。我在JDBC中使用批量更新。

提前致谢..

1 个答案:

答案 0 :(得分:1)

您应该在batch insert内执行transaction。在事务内部执行时,您可以确保执行所有更新,或者不更新任何更新。执行此操作,您可以停止数据库或JDBC驱动程序,以便在批处理中的每个插入步骤周围强加事务边界。

做这样的事情

try{
    connection.setAutoCommit(false);
    // add to batch and execute batch
    connection.commit();
    } catch (SQLException e) {
      e.printStackTrace();
    }
finally{
   //closing statements
   }