The "fetch size" refers to buffering by the driver of the rows retrieved from the database; instead of retrieving one row at a time, each time ResultSet.next() is called, the driver may choose to transfer and buffer more rows at a time. Some drivers by default will retrieve all rows in the ResultSet; this can cause unnecesarry OutOfMemory errors. Other drivers have a low default value for the fetch size; this causes slowness due to excessive netwrok transfers of the data, and setting a higher fetch size improves performance.
Fetch size is usually set with Statement.setFetchSize(); some drivers (such as Oracle) have alternate ways of setting the fetch size that can be more convenient.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com