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

Най-добра практика за пагинация в Oracle?

Ако вече използвате анализи (ROW_NUMBER() OVER ... ) след това добавянето на друга аналитична функция към същото разделяне ще добави незначителна цена към заявката.

От друга страна, има много други начини за извършване на пагинация, единият от които използва rownum :

SELECT * 
  FROM (SELECT A.*, rownum rn
          FROM (SELECT *
                  FROM your_table
                 ORDER BY col) A
         WHERE rownum <= :Y)
 WHERE rn >= :X

Този метод ще бъде по-добър, ако имате подходящ индекс в колоната за подреждане. В този случай може да е по-ефективно да използвате две заявки (една за общия брой редове, една за резултата).

И двата метода са подходящи, но като цяло, ако искате както броя на редовете, така и набор от пагинация, тогава използването на анализ е по-ефективно, тъй като заявявате редовете само веднъж.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. REGEXP_SUBSTR() Функция в Oracle

  2. PL/SQL разпечатва референтния курсор, върнат от съхранена процедура

  3. Има ли начин да инсталирам java на Oracle 11g XE?

  4. Активиране на TLS в R12.1

  5. Скрипт за намиране на многостепенни зависимости на пакет