Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Suporte Spring JDBC e grande conjunto de dados


O driver Oracle JDBC tem suporte adequado para o setFetchSize() método em java.sql.Statement , que permite controlar quantas linhas o driver buscará de uma só vez.

No entanto, RowMapper como usado pelo Spring funciona lendo cada linha na memória, obtendo o RowMapper para traduzi-lo em um objeto e armazenar o objeto de cada linha em uma grande lista. Se o seu conjunto de resultados for enorme, essa lista ficará grande, independentemente de como o JDBC busca os dados da linha.

Se você precisar lidar com grandes conjuntos de resultados, o RowMapper não é escalável. Você pode considerar usar RowCallbackHandler em vez disso, juntamente com os métodos correspondentes em JdbcTemplate. RowCallbackHandler não dita como os resultados são armazenados, cabendo a você armazená-los.