Garbage collection won't help here. You have to optimize your design to make this work. As long as you read 100000 rows of data into memory without managing this correctly no garbage collector will ever free one byte of memory.

Do you use jdbc directly or adf bc to get the data?

Please post some of your code.

In sdf you need to optimize the vo you use to read the data by setting the read more to range paging. There's more to do but as I don't know which technology you use, I can't say exactly what.