и мое приложение имеет функцию массовой загрузки. Я обновляю определенные столбцы, но в настоящее время наблюдаю ->
с помощью Spring-Core 4.2.9.RELEASE: это занимает около 4 секунд
Код: Выделить всё
org.springframework
spring-core
4.2.9.RELEASE
Код: Выделить всё
org.springframework
spring-core
5.3.31
Код: Выделить всё
com.oracle.database.jdbc
ojdbc8
19.3.0.0
Код: Выделить всё
com.oracle.database.jdbc
ucp
19.19.0.0
Код: Выделить всё
jdbctemplate.batchUpdate()В новой версии Код: Выделить всё
// lets say BATCH_SIZE is 100
final List batchedRecords = new ArrayList(BATCH_SIZE);
@Autowired
private NamedParameterJdbcTemplate jdbcTemplate;
Код: Выделить всё
Map record;
for(Iterator saveRecs= dataNode.elements(); saveRecs.hasNext();) {
record = new HashMap();
// some processing
insert( record);
}
done();
Код: Выделить всё
public final void insert(final Map record) {
batchedRecords.add(record);
recordCount++;
if (batchedRecords.size() == BATCH_SIZE) {
runBatrchInsert();
}
}
private void runBatchInsert() {
Map[] recordArr = new HashMap[batchedRecords.size()];
jdbcTemplate.batchUpdate(sql, recordArr);
}
private void done(){
runBatchInsert();
}
application.properties
Код: Выделить всё
jdbc.ora.url: jdbcLoracle:thin:@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxКод: Выделить всё
jdbc.ora.user:Код: Выделить всё
jdbc.ora.password:Код: Выделить всё
@Autowiredprivate HikariOracleDataSourceFactory ds;
Код: Выделить всё
@Beanpublic DataSource dataSource(){return ds.createDataSource("ora");}
Код: Выделить всё
@Beanpublic NamedParameterJdbcTemplate jdbcTemplate(DataSource datasource){return new NamedParameterJdbcTemplate(datasource);}
Может кто-нибудь объяснить, что здесь изменилось?
Подробнее здесь: https://stackoverflow.com/questions/791 ... y-very-slo
Мобильная версия