Что на самом деле делает метод Statement.setFetchSize (nSize) в драйвере JDBC для SQL Server?

У меня есть действительно большая таблица с несколькими миллионами записей каждый день, и в конце каждого дня я извлекаю все записи предыдущего дня. Я делаю это так:

String SQL =  "select col1, col2, coln from mytable where timecol = yesterday";
Statement.executeQuery(SQL);

Проблема в том, что эта программа занимает около 2 ГБ памяти, потому что она принимает все результаты в памяти, а затем обрабатывает ее.

Я пытался установитьStatement.setFetchSize(10) но он занимает точно такую же память от ОС, это не имеет никакого значения. я используюДрайвер JDBC для Microsoft SQL Server 2005 за это.

Есть ли способ прочитать результаты небольшими порциями, как это делает драйвер базы данных Oracle, когда запрос выполняется, чтобы показать только несколько строк, и по мере прокрутки вниз отображаются дополнительные результаты?

Ответы на вопрос(8)

Ваш ответ на вопрос