|
|
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
mayton, ну не ролбак, какая разница суть в том, что при попытке получить данные при помощи Flashback Query в какой то момент вы на сможете это сделать. Потому что Oracle их уже почистил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 13:13:28 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
Ну в общем все понятно, все уже одно да потому, вокруг одного. Спасибо всем за ответы ! Как резюме, получается наиболее универсальный способ : - проверять размеры возвращаемого датасета (в Oracle я насколько помню есть прогнозируемые размеры) да бы не получить долго выполняемый запрос на уровне БД Если больше какого то разумного N - говорить пользователю, что не будем выполнять запрос. - ну и собственно "мотать" датасет, либо курсор и передавать "окно", ну или 2-3 "окна" , тут уже тонкости. - закрывать соединение с БД после получения данных - открывать его по новой и здесь собственно, либо кидать абсолютно такой же запрос, и "мотать" либо в запрос ввести фильтры (ну если это возможно , так как для этого нужна сортировка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 13:21:58 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
vlad_nalBlazkowicz, ну то есть Вы предлагаете вариант 4 : - ограничить выборку скажем 200 -300 -ми записями - а если пользователь ввел критерии поиска, которые тянут на большее , то выводить ему сообщение : "Уточните запрос .... трам пам пам " ограничивать выборку надо записями максимум на 2 экрана. 200-300 записей это 15-20 экранов и искать в них глазами бессмсленно, даже если использовать поиск браузера. если ты "закешируешь" на сервере всю выборку (дабы избежать твои сомнения по 3 варианту) - получишь реальные "ощущения": данные уже изменились, а ты смотришь не реальную ситуацию правильнее сделать грамотную фильтрацию для пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 13:29:00 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
cdtyjvГотовых решений, которые сходу вас устроят, тут нет. Но есть большой опыт, накопленный при решении этих проблем, который можно перенимать. Ищите по ключевому слову "pagination". очень странно....хотя понятно, что в Java ООП подход, но не компонентный подход. Зачем изобретать велосипед по слову pagination ? Почему не поискать по слову компонент таблица ? Их есть и с пагинацией и с ленивой загрузкой. ______________________________________________ "Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 13:50:51 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
vlad_nalи передавать "окно", взять библиотеку готовых визуальных компонентов....либо написать свою. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 13:52:56 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
в спринг дата есть пагинация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 14:05:59 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
Petro123, еще раз : как и написано в заголовке интересовала "методология" то есть какой то ПРИНЦИПИАЛЬНО новый подход, которого не знаю. Не реализация ! А подход. pagination - насколько я понял использует тот же подход ограничения и "промотки" выборки. В этой теме меня интересовали именно концептуальные подходы решения проблемы. Для себя я понял, что подход : основанный на создание "окна" ("окно" - в моем понимание это не отображаемая форма, а некий механизм получения куска выборки) , с применением изменяемых фильтров по сортировке - наиболее приемлемый вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 14:07:34 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
vlad_nalто есть какой то ПРИНЦИПИАЛЬНО новый подход, которого не знаю. Очень сильно зависит от ГУИ. О чём, как раз нет ни слова в теме. Например, недавно совсем, ГУГЛ в поиске показывает на ввод каждой буквы новую выборку. Чем не новый метод? ______________________________________________ "Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 14:25:58 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
Никакой принципиально новой методологии в пагинации нету. Эта тема изъезжена вдоль и поперёк в форумах, статьях и блогах. Интересным может быть направление синхронизации клиентского кеша ResultSet с сервером но здесь всплывает масса "но" о которорых говорить лень. В основном это принципиальная возможность-невозможность реализовывать нотификации с сервера (выбор типа DBMS, выбор драйвера/протокола OCI/thin, SQL*Net/TTC, версия DBMS 10/11, поддержка технологий FAN). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 14:31:55 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
maytonНикакой принципиально новой методологии в пагинации нету. Ну , мало ли :-) вчера не было, вдруг сегодня кто то придумал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 14:49:18 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
В описании html4 есть рекомендации по построению таблиц, которые начинают отображаться сразу. Если им следовать, то вопрос "как сделать постраничную выборку" - просто не возникает: захотелось клиенту забрать стопитцот строк и шариться при помощи Ctrl+F, Ctrl+G - да бога ради. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 17:50:14 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
Лучшее -- вот это: vlad_nal2. Вариант: как делалось в стендбае (работали с Oracle поэтому буду его терминологию использовать): с ДБ возвращалась ссылка на курсор, из которой выкачивалось, ну например 500 записей, курсор не закрывался ! После чего записи показывались пользователю, и как только пользователь опускался скажем до 450-й записи, подкачивалось еще 500 записей и т.д. Когда форма закрывалась - курсор освобождался. Но это в стенд, что такой вариант с WEB не проканает, так как количество открытых коннектов к БД и курсоров быстро превысит все возможные пределы. Или я не прав (интересует прежде всего Oracle, Postgres)? Или тупо ограничивать набор всегда порогом скажем в 100 записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 20:08:39 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
MasterZivИли тупо ограничивать набор всегда порогом скажем в 100 записей. +1. Человек все равно не в состоянии проанализировать большое количество данных. Пусть уточняет запрос. Можно еще добавить кнопочку "Загрузить еще 100" (тоже до определенного предела, скажем, 1000 записей), для которой в запрос добавлять offset. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 20:12:02 |
|
||
|
методология больших запросов в Java
|
|||
|---|---|---|---|
|
#18+
а кто мешает использовать локальные базы SQLite, IndexedDB, Web SQL. ограничить пользователя определёнными браузерами в данном случае не проблема, а если использовать websockets, то можно элементарно видеть все изменения в реальном времени, с минимальным трафиком можно сдедать "бесконечную" таблицу и вертикальным ползунком регулировать скорость просмотра данных вверх или вниз. трафик минимальный (а если wss, то еще меньше) грубо говоря: с клиента управлять курсором на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 21:22:53 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38432864&tid=2128382]: |
0ms |
get settings: |
17ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
322ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
91ms |
get tp. blocked users: |
3ms |
| others: | 307ms |
| total: | 785ms |

| 0 / 0 |
