Хорошо за пределами GEN80, HiSoft Паскаль и Hisoft C были довольно впечатляющими. Надлежащий высокоуровневые языки, прохладный путь. Прежде чем я изучил Z80 и был расстроен скоростью ОСНОВНЫХ, я также любил MCODER, хотя больше на ZX81, чем Спектр ZX.
Используйте ROWNUM
:
select
*
from
(
select
*
from
foo
order by
bork
) x
where
ROWNUM <= n
Обратите внимание, что rownum
применяется перед сортировкой для подзапроса, поэтому вам нужен два вложенных запроса, иначе вы получите просто n
случайных строк.
Будет ли он просмотрен гораздо чаще, чем обновлен? Как насчет сохранения другой таблицы идентификаторов последних N вставленных строк (используйте триггер, чтобы удалить наименьший идентификатор из этой таблицы и добавить новую строку с текущим вставленным).
Теперь у вас есть таблица, в которой записаны идентификаторы последних N вставленных строк. В любое время, когда вам понадобится N, просто присоедините его к основному столу. Если N изменяется, выберите максимально возможное значение, а затем отфильтруйте его после ... конечно, вы можете обнаружить, что это не так быстро для вашего приложения (ведение этой таблицы может свести на нет любое увеличение производительности)