El controlador Oracle JDBC tiene soporte adecuado para setFetchSize()
método en java.sql.Statement
, que le permite controlar cuántas filas obtendrá el controlador de una sola vez.
Sin embargo, RowMapper
como lo usa Spring, funciona leyendo cada fila en la memoria, obteniendo el RowMapper
para traducirlo en un objeto y almacenar el objeto de cada fila en una gran lista. Si su conjunto de resultados es enorme, entonces esta lista crecerá, independientemente de cómo JDBC obtenga los datos de la fila.
Si necesita manejar grandes conjuntos de resultados, entonces RowMapper no es escalable. Podría considerar usar RowCallbackHandler
en su lugar, junto con los métodos correspondientes en JdbcTemplate. RowCallbackHandler
no dicta cómo se almacenan los resultados, dejando que usted los almacene.