为什么Camel JDBC与Java JDBC相比这么慢? (1秒vs 4分钟)

时间:2020-03-05 09:11:18

标签: java jdbc apache-camel camel-jdbc

我使用骆驼jdbc代替简单的Java jdbc代码只是为了获取10,200条记录

Java JDBC:

Connection c = dataSource.getConnection();
        Statement m = c.createStatement();
        ResultSet rs = m.executeQuery(getEmployeeCall());
        while(rs.next()) {
            System.out.println(""+ rs.getString(1));
            break;
        }

结果只需1 -2秒。

使用Camel JDBC时提示:

.log(LoggingLevel.INFO, getEmployeeCall())
                    .setBody(constant(getEmployeeCall()))
                    .to("jdbc:masterdata")
                    .to("log:?level=INFO&showBody=true");

花了大约4分钟才能得到很多结果。

有人知道为什么Camel JDBC这么慢吗?

查询看起来像:

SELECT e.userid, e.firstname, e.lastname, e.mobilephone, e.email, e.employmenttype, e.enddate, decode(e.llevel,'','N','Y') as Manager, e.llevel, leader.userid as leader_userid, cm.companyname as cm_companyname, CASE e.companyid WHEN '1'  THEN '29' WHEN '13' THEN '435' WHEN '550' THEN '153' WHEN '640' THEN '52' WHEN '67' THEN '40' ELSE e.companyid END as companyid, e.COUNTRY, loc.LOCATIONNAME as loc_locationname, e.unitid, org.UNITNAME as org_unitname,  e.resultareaid as orgstr_unitid, e.locationid, e.imageprofile FROM employee e LEFT JOIN employee leader ON e.leaderemployeeid = leader.EMPLOYEEID LEFT JOIN company cm ON (CASE WHEN e.companyid = '1'  THEN '29' WHEN e.companyid = '13' THEN '435' WHEN e.companyid = '550' THEN '153' WHEN e.companyid = '60' THEN '52' WHEN e.companyid = '67' THEN '40' ELSE e.companyid END) = cm.companyid LEFT JOIN organisation org ON e.unitid = org.UNITID LEFT JOIN location loc ON e.locationid = loc.LOCATIONID WHERE (e.enddate is null or e.enddate > sysdate - 31)

有什么想法可以在骆驼jdbc中解决这个问题,还是我应该为此目的创建bean?

0 个答案:

没有答案
相关问题