Váš dotaz bude muset odpočítat prvních 90M záznamů, abyste získali dalších 100 , takže sotva existuje prostor pro zlepšení.
Nevidím ORDER BY klauzule ve vašem poddotazu, ale pravděpodobně ji máte. V tomto případě na něm možná budete chtít vytvořit index.
A otázka:opravdu vaši uživatelé proklikají 900K stránky před stížností na výkon?
Aktualizace:
Pokud potřebujete nejnovější stránku, musíte přepsat ORDER BY sloupec v sestupném pořadí:
SELECT *
FROM (
SELECT rownum rnum, f.*
FROM findings f
ORDER BY
record_ordering_column DESC
)
WHERE rnum > 900
AND rownum <= 100
a vytvořte index na record_ordering_column
Všimněte si, že míchám rownum 's z vnořených dotazů ke zlepšení výkonu.
Další podrobnosti najdete v tomto článku na mém blogu: