Драйвер Sybase Jconnect — что такое размер выборки по умолчанию и может ли увеличение размера выборки принести мне пользу

Я использую Sybase Jconnect Driver Jconn3 для выполнения хранимых процедур, которые возвращают до миллиона строк данных. Я узнал здесь и там, что использование большего размера выборки может улучшить время выборки всех данных.

  • Однако я не могу понять, что такое размер выборки по умолчанию для драйвера Sybase Jconnect. Можете ли вы помочь с тем, какой размер выборки по умолчанию использует sybase.
  • И учитывая, что у меня достаточно ресурсов памяти/процессора для одновременной обработки миллионов ресурсов, целесообразно ли установить fetchSize на все?

person MoveFast    schedule 08.03.2012    source источник


Ответы (2)


Размер выборки устанавливает количество строк, возвращаемых в блоке с сервера. Обычно он равен 0, что означает возврат всех строк одновременно. Если у вас есть память, чтобы принять 1 000 000 строк за один раз, вы можете просто оставить настройку в покое.

Если вы хотите это проверить, просто вызовите getFetchSize() для объекта оператора. (Возможно, для этого вам потребуется преобразовать объект в SybStatement.)

person Jonathan B    schedule 21.03.2012
comment
Является ли возврат всех строк функцией Sybase? Поскольку fetchSize, равный 0, определенно не извлекает все строки сразу для Oracle. - person a_horse_with_no_name; 21.03.2012
comment
да. Размер выборки определяется поставщиком. Для Sybase JConnect размер выборки, равный 0, означает отправку всего. Для большинства веб-систем, которые я разрабатываю, я устанавливаю размер выборки, кратный количеству строк на экране. Я считаю, что нет смысла получать данные, которые я все равно никогда не обработаю. - person Jonathan B; 04.04.2012
comment
Я не хочу повторять вопрос, так что .. вот мой. когда я устанавливаю fetcSize для Jconnect (Sybase), приложение ResultSet возвращает только одну строку, но есть миллион записей - person Zuko; 21.08.2014

После исследования я обнаружил, что драйвер JDBC для Sybase поддерживает потоковую передачу. Вы можете установить FetchSize(), чтобы ограничить количество данных, которые должны храниться в памяти за один раз. Если вы установите значение 0, он загрузит весь набор данных в память.

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc39001.0605/html/prjdbc/X11994.htm

person TrongBang    schedule 04.07.2018