Kueri Anda perlu menghitung 90M
pertama catatan untuk mendapatkan 100
berikutnya , jadi hampir tidak ada ruang untuk perbaikan.
Saya tidak melihat ORDER BY
klausa di subquery Anda, tetapi mungkin Anda memilikinya. Dalam hal ini, Anda mungkin ingin membuat indeks di atasnya.
Dan sebuah pertanyaan:apakah pengguna Anda benar-benar mengklik 900K
halaman sebelum mengeluh tentang kinerja?
Pembaruan:
Jika Anda membutuhkan halaman terbaru, Anda perlu menulis ulang ORDER BY
kolom dalam urutan menurun:
SELECT *
FROM (
SELECT rownum rnum, f.*
FROM findings f
ORDER BY
record_ordering_column DESC
)
WHERE rnum > 900
AND rownum <= 100
dan buat indeks di record_ordering_column
Perhatikan bahwa saya mencampur rownum
dari kueri bertingkat untuk meningkatkan kinerja.
Lihat artikel ini di blog saya untuk detail lebih lanjut: