Выберите и' длятся вставленные записи в таблице - оракул

Хорошо за пределами GEN80, HiSoft Паскаль и Hisoft C были довольно впечатляющими. Надлежащий высокоуровневые языки, прохладный путь. Прежде чем я изучил Z80 и был расстроен скоростью ОСНОВНЫХ, я также любил MCODER, хотя больше на ZX81, чем Спектр ZX.

6
задан zendar 2 December 2009 в 13:05
поделиться

2 ответа

Используйте ROWNUM :

select
  *
from
  (
    select
      *
    from
      foo
    order by
      bork
   ) x
where
  ROWNUM <= n

Обратите внимание, что rownum применяется перед сортировкой для подзапроса, поэтому вам нужен два вложенных запроса, иначе вы получите просто n случайных строк.

15
ответ дан 8 December 2019 в 03:27
поделиться

Будет ли он просмотрен гораздо чаще, чем обновлен? Как насчет сохранения другой таблицы идентификаторов последних N вставленных строк (используйте триггер, чтобы удалить наименьший идентификатор из этой таблицы и добавить новую строку с текущим вставленным).

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

4
ответ дан 8 December 2019 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: