Вашата заявка ще трябва да отброи първите 90M записи, за да получите следващите 100 , така че едва ли има място за подобрение.
Не виждам ORDER BY клауза във вашата подзаявка, но вероятно я имате. В този случай може да искате да създадете индекс върху него.
И един въпрос:вашите потребители наистина ли кликват върху 900K страници, преди да се оплачете от ефективността?
Актуализация:
Ако имате нужда от най-новата страница, трябва да пренапишете своя ORDER BY колона в низходящ ред:
SELECT *
FROM (
SELECT rownum rnum, f.*
FROM findings f
ORDER BY
record_ordering_column DESC
)
WHERE rnum > 900
AND rownum <= 100
и създайте индекс на record_ordering_column
Имайте предвид, че смесвам rownum от вложените заявки за подобряване на производителността.
Вижте тази статия в моя блог за повече подробности: