我是春天的新人。我正在处理批处理作业,该作业将数据从csv文件加载到sybase表。输入文件超过5GB&有几百万条记录。
我正在使用spring jdbctemplate进行批量更新。以下是我的代码段。
public int[] batchUpdate(final CsvReader products) throws IOException,
SQLException {
int[] updateCounts = getJdbcTemplate().batchUpdate(sqlStatement,
new AbstractInterruptibleBatchPreparedStatementSetter() {
@Override
public boolean setValuesIfAvailable(PreparedStatement pstmt, int i)
throws SQLException {
// logic to set the values to prepared statement etc...
@Override
public int getBatchSize() {
return batchSize;
}
});
}
}
我正在使用apache dbcp datasource。我将batchsize设置为2000.我没有更改自动提交等默认值中的任何其他内容。
现在,当我运行这个工作时...平均需要4.5分钟才能插入2000条记录&这项工作运行了2天(还没有完成)。
有人可以建议如何优化它吗?提前谢谢。