У меня есть SQL-запрос, который выглядит примерно так:
SELECT * FROM(
SELECT
...,
row_number() OVER(ORDER BY ID) rn
FROM
...
) WHERE rn between :start and :end
По сути, это часть ORDER BY, которая замедляет работу. Если бы я его удалял, стоимость EXPLAIN снижалась на порядок (более 1000x). Я пробовал это:
SELECT
...
FROM
...
WHERE
rownum between :start and :end
Но это не дает правильных результатов. Есть ли простой способ ускорить это? Или мне придется потратить больше времени на инструмент EXPLAIN?