В моем Java-коде я получаю доступ к таблице базы данных оракула с помощью оператора select.Я получаю много строк (около 50 000 строк), поэтому rs.next()
требуется некоторое время для обработки всех строк.
using ResultSet, the processing of all rows (rs.next) takes about 30 secs
Моя цель - ускорить этот процесс, поэтому я изменил коди теперь, используя CachedRowSet
:
using CachedRowSet, the processing of all rows takes about 35 secs
Я не понимаю, почему CachedRowSet
медленнее, чем обычный ResultSet
, потому что CachedRowSet
извлекает все данные одновременно, а ResultSet
извлекает данные каждый раз, когда вызывается rs.next
.
Вот часть кода:
try {
stmt = masterCon.prepareStatement(sql);
rs = stmt.executeQuery();
CachedRowSet crset = new CachedRowSetImpl();
crset.populate(rs);
while (rs.next()) {
int countStar = iterRs.getInt("COUNT");
...
}
} finally {
//cleanup
}