|
|
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста что и когда нада использовать и что это такое вопше ибо у меня в голове уже каша : 1) что такое fetch size in ResultSet 2) что такое row size in Statement 3) как пользоваться курсором в JDBC, как подключить и т/д/ никак не пойму как оно работает если у меня в БД 100000000 записей. Оно по дефолту (10) ровов из БД тянет или например 100 кеширует и по 10 из кеша тянет ! не пойму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 01:07 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
botasa111, 1) Не очень понятно зачем ты полез в fetchSize. Можно спокойно использовать JDBC API и без этих знаний. Но вот тебе фрагмент из JDBC 4.1 Specification. Его можно легко нагуглить. Performance Hints The Statement interface has two methods that can be used to provide hints to a JDBC driver: setFetchDirection and setFetchSize. The values supplied to these methods are applied to each result set produced by the statement. The methods of the same name in the ResultSet interface can be used to supply hints for just that result set. Hints provided to the driver via this interface may be ignored by the driver if they are not appropriate.The methods getFetchDirection and getFetchSize return the current value of the hints. If either of these methods is called before the corresponding setter method has been called, the value returned is implementation-defined. 2) По getMaxRowSize в документе вообще толком ничего нет. Он просто упоминается в структуре DataSourceLimits. Размерность я-бы уточнил. Байты. Символы. Колонки. Х.З. 3) Проще всего найти любой JDBC example но для твоей DBMS. никак не пойму как оно работает если у меня в БД 100 000 000 записей. Непонятно как тебе объяснить не зная твоего уровня. Курсор - это итератор. Или канал через который можно выкачать последовательно все твои 100 мильйонов строк. Вопрос опережающего кеширования или страничного для нас сейчас остаётся за кадром. Он зависит от DBMS (для Оракла он будет один а для МССКЛ - другой) а fetchSize как описано выше это hint. Или подсказка. Это означает что ты можешь ставить любые настройки но драйвер будет их использовать не как директивы а как рекомендации. Тоесть может использовать а может и нет. А может взять свои по дефолту (ХЗ как оно на самом деле. Надо уточнять доку по твоему драйверу). Вобщем любые конкретные вопросы дальше имеют смысл только по конкретному драйверу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 02:17 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
mayton, ну я понял так что ФЕТЧ используется что бы указать по сколько РОВОВ будет он тянут из БД то есть не сразу все, а кусочками где то писали что это примерно дефолтное значение 10 хотя и зависит от драйвера, потому что ДЖБС АПИ это просто напросто набор классов и интерфейсов без конкретной реализации и какой то вендор надает имплементацию их и делает как он хочет. НА счет РОВ САЙЗ то прочитал что это для того что бы установить максимальное количество РОВОВ в Резалт СЕТЕ дефолтное значение думаю что в конкретном драйвере есть. Я вот сам процесс понимаю : пошел запрос - вернули ответ в резалт сет, но не все 100к РОВОВ а там например 50 ибо у нас бы был АУТофМЕМОРИ Еррор и резалт сет по немногу тянет из БД по порциям например по 50 подгружает и мы дальше может по них перемещаться. (это для перфоменса сделано так) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 12:13 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
botasa111, по простому вар1 Код: java 1. 2. вар2 Код: java 1. 2. без всяких error ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 12:22 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
Скорее всего OutOfMemory вызывает ваш прикладной код. Вот его и надо смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 12:22 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
botasa111Я вот сам процесс понимаю : пошел запрос - вернули ответ в резалт сет, но не все 100к РОВОВ а там например 50 ибо у нас бы был АУТофМЕМОРИ Еррор и резалт сет по немногу тянет из БД по порциям например по 50 подгружает и мы дальше может по них перемещаться. (это для перфоменса сделано так) У меня в старом проекте Java 1.4 по разным условиям программы выбирали 20 млн. записей из 2 миллиардов. Далее зависит от того, где Вы их храните, и что с ними делаете. Если запись с сотнями/тысячами атрибутов, и хранить всё это в самой программе, то и при работе с 1000 записями будет OutOfMemoryError. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 16:50 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
зачем из базы скачивать такой объём строк? чтоб ручками скролить, а глазками смотреть? чтоб фильтровать/сортировать на клиенте? даже если с помощью курсора выбирать по 20-30 ? чтоб ручками менять несколько записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 19:18 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
вадя, ты неверно вопрос ставишь. Основание выгрузить даже всё БД можно найти. К примеру он пишет процесс экспорта или миграции в другю систему. Другое дело как он поступает с курсором. Обрабатывает построчно или зачем-то аккумулирует в heap. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 21:43 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
maytonвадя, ты неверно вопрос ставишь. Основание выгрузить даже всё БД можно найти. К примеру он пишет процесс экспорта или миграции в другю систему. Другое дело как он поступает с курсором. Обрабатывает построчно или зачем-то аккумулирует в heap. очень неудачный пример - через файл будет быстрее... скорее всего - неумение работать с sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 22:36 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
вадя, какой файл? Базы данных нельзя мигрировать файлом браток. Это я тебе как бывший DBA говорю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 22:40 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
maytonвадя, какой файл? Базы данных нельзя мигрировать файлом браток. Это я тебе как бывший DBA говорю. через экспорт/импорт csv? не делал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 23:05 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
maytonБазы данных нельзя мигрировать файлом браток.о_О да ладно pg_dump например создаёт один файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 23:40 |
|
||
|
JDBC fetch size, row size and cursor
|
|||
|---|---|---|---|
|
#18+
grasoff.net, о Грас. Рад тебя видеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 23:43 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39143943&tid=2124468]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 410ms |

| 0 / 0 |
