Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle &Pagination

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:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Dinamis ASC dan DESC

  2. Perbedaan antara kueri hak istimewa dalam tabel

  3. LAST_NUMBER pada urutan oracle

  4. Apakah penggunaan klausa RETURNING INTO lebih cepat daripada pernyataan SELECT yang terpisah?

  5. SQLPlus varchar2 mengeluarkan spasi putih