Почему Camel JDBC такой медленный по сравнению с Java JDBC? (1 секунда против 4 минут)

Я использую camel jdbc вместо простого кода java jdbc, чтобы получить 10200 записей.

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)

Есть идеи исправить это в camel jdbc или мне создать bean для этой цели?

0 ответов

Другие вопросы по тегам