Tôi có một bảng oracle với số lượng kỷ lục 99896618.Oracle & Pagination
tôi cần phải lấy đoạn nhỏ dữ liệu (cho phép nói 100 hồ sơ) để hiển thị nó trên một trang web, (Trong thế giới web chúng tôi gọi nó phân trang). Hiện tại tôi đang sử dụng truy vấn sau để thực hiện điều đó tuy nhiên người dùng không hài lòng với hiệu suất.
SELECT * FROM (select rownum rnum,f.* from findings f where rownum<90000100)
WHERE rnum > 90000000
Hiện tại, đang mất 1 phút 22 giây để nhận kết quả. Có anyway để làm cho nó tốt hơn. Tôi chắc chắn mở cho bất kỳ loại đề xuất nào bao gồm sửa đổi cấu trúc bảng hoặc như thêm các chỉ mục.
(Just FYI, tôi đang sử dụng ASP.NET như công nghệ web phía máy chủ và ADO.NET như lớp truy cập dữ liệu và Silverlight để trình bày phía khách hàng)
Tôi đã tạo số trang dễ dàng bằng cách tạo danh sách thả xuống số trang (chỉ cần mô tả đơn giản, tôi đã tạo điều khiển tùy chỉnh để họ có thể truy cập 1000 trang dễ dàng nhất). Có thể đây là thông tin hữu ích, phần lớn thời gian (khoảng 95% thời gian) người dùng quan tâm đến các bản ghi (mới nhất) cuối cùng. – funwithcoding