Использование базы данных JDBC setMaxRows

Я пытаюсь написать независимое от базы данных приложение с помощью JDBC. Теперь мне нужен способ получить первые N записей из некоторой таблицы. Я видел, что в JDBC есть метод setMaxRows, но мне неудобно его использовать, потому что я боюсь, что база данных вытолкнет все результаты, и только драйвер JDBC уменьшит результат. Если мне нужны первые 5 результатов в таблице с миллиардом строк, это сломает мне шею(таблица имеет полезный индекс).

Написание специальных операторов SQL-для каждого типа базы данных не очень приятно, но это позволит базе данных выполнять продуманное планирование запросов и перестать получать больше результатов, чем необходимо.

Могу ли я полагаться на setMaxRows, чтобы сообщить базе данных, чтобы она не работала слишком много?

Думаю, в худшем случае я не могу полагаться на то, что это сработает должным образом. Меня в основном интересуют Postgres 9.1 и Oracle 11.2, поэтому, если у кого-то есть опыт работы с этими базами данных, пожалуйста, сделайте шаг вперед.

6
задан Franz Kafka 31 May 2013 в 13:48
поделиться