Twoje zapytanie będzie musiało odliczyć pierwsze 90M
rekordy, aby uzyskać następne 100
, więc nie ma miejsca na poprawę.
Nie widzę ORDER BY
klauzula w podzapytaniu, ale prawdopodobnie ją masz. W takim przypadku możesz utworzyć na nim indeks.
I pytanie:czy Twoi użytkownicy naprawdę klikają 900K
strony przed złożeniem skargi na wydajność?
Aktualizacja:
Jeśli potrzebujesz najnowszej strony, musisz przepisać swoje ORDER BY
kolumna w kolejności malejącej:
SELECT *
FROM (
SELECT rownum rnum, f.*
FROM findings f
ORDER BY
record_ordering_column DESC
)
WHERE rnum > 900
AND rownum <= 100
i utwórz indeks w record_ordering_column
Zauważ, że mieszam rownum
z zagnieżdżonych zapytań w celu poprawy wydajności.
Zobacz ten artykuł na moim blogu, aby uzyskać więcej informacji: