先贴代码,正常的
BATCH模式入库。
入库数据是从
hornetq消息队列读取,约
1000W数据量
入库效率刚开始10000条数据,约
5000ms;入库上百万后,入库效率明显变低,10000条数据,入库需
20000ms
个人猜测可能的原因:1.oracle数据库入库效率问题;2.hornetq队列积压,处理不过来,导致入库效率慢(这个会导致入库慢吗?)
求助
!!!
private void save(final List<DSOnlineOrder> orders) {
if (orders == null || orders.isEmpty()) {
return;
}
SqlSession sqlSession = null;
DSOnlineOrderMapper mapper;
try {
sqlSession = toFactory.openSession(ExecutorType.BATCH, false);
mapper = sqlSession.getMapper(DSOnlineOrderMapper.class);
for (DSOnlineOrder dsPayOrder : orders) {
mapper.insertSelective(dsPayOrder);
}
sqlSession.commit();
sqlSession.clearCache();
} catch (Exception e) {
if (sqlSession != null)
sqlSession.rollback();
logger.error("save dspayorder error:", e);
} finally {
if (sqlSession != null)
sqlSession.close();
}
}