Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle &Pagination

Вашата заявка ще трябва да отброи първите 90M записи, за да получите следващите 100 , така че едва ли има място за подобрение.

Не виждам ORDER BY клауза във вашата подзаявка, но вероятно я имате. В този случай може да искате да създадете индекс върху него.

И един въпрос:вашите потребители наистина ли кликват върху 900K страници, преди да се оплачете от ефективността?

Актуализация:

Ако имате нужда от най-новата страница, трябва да пренапишете своя ORDER BY колона в низходящ ред:

SELECT  *
FROM    (
        SELECT  rownum rnum, f.*
        FROM    findings f
        ORDER BY
                record_ordering_column DESC
        ) 
WHERE   rnum > 900
        AND rownum <= 100

и създайте индекс на record_ordering_column

Имайте предвид, че смесвам rownum от вложените заявки за подобряване на производителността.

Вижте тази статия в моя блог за повече подробности:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL Developer 3.1.07 допълнителни интервали между знаците с помощта на listagg

  2. Трябва да намерите следващия и предишния работен ден в Oracle

  3. Dapper - извикване на Oracle schema.package.function

  4. Таблица все още съществува, когато бъде изпусната

  5. Как да разширя Liquibase за генериране на журнали за промени със съхранени процедури, функции и тригери?