Не совсем отвечает на вопрос, но рассматривали ли вы явное добавление подкачки в запрос SELECT с помощью ROWNUM или ROWNUMBER в предложении WHERE?
например: для второй страницы данных, размер страницы 20 элементов:
SELECT *
FROM MyDataObjects
WHERE rownum > 20 AND rownum < 41
Это обеспечит возврат не более одной страницы записей, устраняя проблему с большим курсором.