Здесь я использую драйвер JDBC PostgreSQL.
Ниже приведен мой код -
Код: Выделить всё
@Transactional(readOnly = true)
private void fetchAndRowCallBackProcessing(CSVPrinter csvPrinter) {
jdbcTemplate.query(con -> {
con.setAutoCommit(false); // This is not needed since I have used @Transactional
PreparedStatement ps = con.prepareStatement(
SQL,
ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_READ_ONLY
);
ps.setFetchSize(1000);
LOGGER.info("jdbcTemplate fetch size - " + jdbcTemplate.getFetchSize()); // Logged -1
LOGGER.info("ps fetch size - " + ps.getFetchSize()); // Logged 1000
return ps;
},
rs -> {
try {
if (rs.getString(1).equals("1740983035847")) // Just for debugging {
LOGGER.info("rs fetch size - " + rs.getFetchSize()); // Logged 1000
}
csvPrinter.printRecord( rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9));
} catch (IOException e) {
e.printStackTrace();
}
});
}
Примечание. Я выполняю отладку на своем локальном компьютере, поэтому других входящих запросов нет.
Изменить -
Это запрос:
SELECT ta.audit_time_stamp, ta.comments, ta.create_time_stamp,
ta.data, ta.event_source, ta.event_source_id, ta.source_type,
ta.source_id, tb.event_type_label FROM tableA ta JOIN tableB tb
ON ta.event_type_id = tb.event_type_id
Таблица A содержит 127680 записей.
Я проверил журналы Postgres, как предложил @Laurenz в ответах. В журналах 128 записей -
Каждая из 128 записей журналов такая -
ЖУРНАЛ: длительность: 11,695 мс
ЖУРНАЛ: выполнить выборку из /C_21: SELECT ta.audit_time_stamp,
ta.comments, ta.create_time_stamp, ta.data, ta.event_source,
ta.event_source_id, ta.source_type, ta.source_id, tb.event_type_label
FROM tableA ta JOIN tableB tb ON ta.event_type_id = tb.event_type_id
Разве это не означает, что один и тот же запрос выполняется 128 раз, одно и то же соединение это происходило 128 раз?
Разве не следовало упомянуть размер выборки или размер пакета?
Предложите, пожалуйста.
Подробнее здесь: https://stackoverflow.com/questions/798 ... sult-set-i
Мобильная версия