powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отбор результата запроса порциями
6 сообщений из 6, страница 1 из 1
Отбор результата запроса порциями
    #32028117
mmoroz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть следующая проблемка:
-Юзер набил в форме некие параметры и указал, что результат возвращать по 20 записей
-Нажимая кнопочки НАЗАД ВПЕРЕД он может загружать новые порции или старые
-Как это можно сделать?
P.S.:Основная проблема в том, что сервер должен для начала выполнить весь БОЛЬШОЙ ЗАПРОС, а хотелось бы чтобы он его целиком не выполнял (хотеть не вредно ).
...
Рейтинг: 0 / 0
Отбор результата запроса порциями
    #32028223
profi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все зависит от того как ты собираешься использовать это
в принципе на форме (Forms) они то и не выбираются полностью
а так в принципе можешь использовать критерий по ROWID
я думаю это заработает...
...
Рейтинг: 0 / 0
Отбор результата запроса порциями
    #32028241
mmoroz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это нужно для работы с базой через WEB. (Ну как на страничках в Inete следующие 25 или предыдущие 25)

А как можно для этого использовать ROWID?
...
Рейтинг: 0 / 0
Отбор результата запроса порциями
    #32028320
profi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну я не знаю как точно в HTML
ибо с этим сталкивался только блина раза два только...
я это использовал в другом прилолжении
короче так берешь за основу какой либо уникальный ключ в таблице
затем на клиенте (не знаю как у тебя)
создаешь массив меток и начинаешь
затем берешь самый малый ключ который отвечает твоим услововиям
первый запрос делаешь следующим образом....
потом пишео
Select * from table_1 where
id>in_id and rownum<=20
order by id
заетм ты получил 20 записей...
занес начальный ID себе в массив и конечный...
если ты хочешь получить новую порцию то вместо первого id
берешь из массив ID который был при следующей выборке
максимальным и отноститьельно него строишь запрос...
если предварительно то идешь вниз по массиву и
берешь ID подставляешь получаешь
короче блина долго рассказывать, но у меня это
все короче нормально работало....
я думаю поймешь, если нет то спроси что неясно..
...
Рейтинг: 0 / 0
Отбор результата запроса порциями
    #32028372
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри план своего запроса и подумай, как сервер сможет добыть первые 25 строк,
не делая полной выборки. Если такое возможно, то тебе поможет хинт FIRST_ROWS,
и, возможно, опция ROWNUM<=25.
А вообще, в общем случае без временных таблиц это, кажется, невозможно.
Например в варианте, когда нужно сделать fullscan для поиска записей удовлетворяющих
твоему критерию.
...
Рейтинг: 0 / 0
Отбор результата запроса порциями
    #32028404
mmoroz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я правильно понял, то можно проделать такую вещь:
-Создать главную таблицу из которой пользователи запросами выдергивают данные по разным критериям.
-На этой таблице должно болтаться уникальное поле с данными из sequence и с уникальным индексом по нему.
-в запросе пишешь
SELECT /*+ index(table idindx) */..., ID
FROM table
WHERE ...
ID>=10 AND ROWNUM<=20

Как я понимаю сканирование таблицы будет идти на основании индекса по ID, причем посли сканирования 20 строк дальнейшее сканирование прекращается, т.е. полного просмотра не будет.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отбор результата запроса порциями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]