Din fråga måste räknas bort de första 90M
poster för att få nästa 100
, så det finns knappast utrymme för förbättringar.
Jag ser ingen ORDER BY
klausul i din underfråga, men förmodligen har du det. I det här fallet kanske du vill skapa ett index på den.
Och en fråga:klickar dina användare verkligen igenom 900K
sidor innan du klagar på prestanda?
Uppdatering:
Om du behöver den senaste sidan måste du skriva om din ORDER BY
kolumn i fallande ordning:
SELECT *
FROM (
SELECT rownum rnum, f.*
FROM findings f
ORDER BY
record_ordering_column DESC
)
WHERE rnum > 900
AND rownum <= 100
och skapa ett index på record_ordering_column
Observera att jag blandar rownum
's från de kapslade frågorna för att förbättra prestandan.
Se den här artikeln i min blogg för mer information: