java - Does jdbc dataset store all rows in jvm memory -


i using java jdbc application fetch 500,000 records db. database being used oracle. write data file each row fetched. since takes hour complete fetching entire data, trying increase fetch size of result set. have seen in multiple links while increasing fetch size 1 should careful memory consumption. increasing fetch size increase heap memory used jvm?
suppose if fetch size 10 , program query returns 100 rows in total. during first fetch resultset contains 10 record. once read first 10 records resultset fetches next 10. mean after 2nd fetch dataset contain 20 records? earlier 10 records still maintained in memory or removed while fetching newer batch? appreciated.

it depends. different drivers may behave differently , different resultset settings may behave differently.

if have concur_read_only, fetch_forward, type_forward_only resultset, driver actively store in memory number of rows corresponds fetch size (of course data earlier rows remain in memory period of time until garbage collected). if have type_scroll_insensitive resultset, on other hand, driver store data fetched in memory in order allow scroll backwards , forwards through data. that's not possible way implement behavior, different drivers (and different versions of drivers) may have different behaviors simplest , way drivers i've come across behave.


Popular posts from this blog