Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Phương pháp tốt nhất để phân trang trong Oracle?

Nếu bạn đã sử dụng phân tích (ROW_NUMBER() OVER ... ) thì việc thêm một hàm phân tích khác trên cùng một phân vùng sẽ thêm chi phí không đáng kể cho truy vấn.

Mặt khác, có nhiều cách khác để phân trang, một trong số đó là sử dụng rownum :

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

Phương pháp này sẽ ưu việt hơn nếu bạn có một chỉ số thích hợp trên cột đặt hàng. Trong trường hợp này, có thể hiệu quả hơn nếu sử dụng hai truy vấn (một cho tổng số hàng, một cho kết quả).

Cả hai phương pháp đều thích hợp nhưng nói chung nếu bạn muốn cả số hàng và tập hợp phân trang thì sử dụng phân tích sẽ hiệu quả hơn vì bạn chỉ truy vấn các hàng một lần.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 7 cách để kiểm tra phiên bản Oracle của bạn

  2. SQL nhiều cột trong mệnh đề IN

  3. Bắt đầu với Cơ sở dữ liệu tự trị của Oracle trên Đám mây

  4. Cách chuyển XML dưới dạng tham số đến thủ tục được lưu trữ trong Oracle

  5. Ví dụ thu thập hàng loạt Oracle bằng cách sử dụng đối tượng loại Rowtype con trỏ