spring-jdbc升级问题导致性能问题

时间:2016-11-17 09:21:18

标签: java spring-batch spring-jdbc

我在旧版本上运行了很多测试(任何版本< = 3.1.2使用3.0.5和新的spring-jdbc-.jar(使用4.1.4的任何版本> 3.1.2)并在使用日志级别TRACE进行测试之后&在DEBUG模式下运行管理以识别导致瓶颈的spring-jdbc-.jar代码。

在org.springframework.jdbc.core.JdbcTemplate#batchUpdate(java.lang.String,org.springframework.jdbc.core.BatchPreparedStatementSetter)中的行号-755(4.1.4版本)的JDBCTemplate.java中的代码是与3.0.5版本相比运行缓慢。然而,两者都试图达到同样的目标。

//below is the piece of code getting executed
    if(rowsAffectedArray < batchSize) {
        pss.setValues(ps, rowsAffectedArray);
        if(ipss == null || !ipss.isBatchExhausted(rowsAffectedArray)) {
            var11.add(Integer.valueOf(ps.executeUpdate()));
            ++rowsAffectedArray;
            continue;
        }
    }

这个while循环遍历小于批量大小的行列表(在我们的例子中是50k)在预准备语句中设置值。当批量增加时,差异很大。

我在互联网上搜索并试图找到spring jdbc代码的任何区别来解读这个但没有多大帮助。向更广泛的受众发送此信息,以便找到根本原因。

0 个答案:

没有答案