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: