oracle分頁查詢簡單用法

使用ROW_NUMBER() OVER(ORDER BY NULL):(需要排序就寫order by 字段名,但對性能影響極大)

SELECT *
  FROM (SELECT A.*, ROW_NUMBER() OVER(ORDER BY NULL) RN FROM ORDER A) T
 WHERE T.RN > 6039591
   AND T.RN < 6039691; --115.21s

使用ROW_NUMBER() OVER(ORDER BY NULL) 配合rownum限定數量:
SELECT *
  FROM (SELECT A.*, ROW_NUMBER() OVER(ORDER BY NULL) RN FROM ORDER A) T
 WHERE T.RN > 8039591
   AND ROWNUM < 100; --230.42s

 

使用ROWNUM的方式:

SELECT *
  FROM (SELECT A.*, ROWNUM RN FROM ORDER A) TT
 WHERE TT.RN > 7039591
   AND ROWNUM < 100; --147.52 s

 

以上查詢是在一張一億三千多萬的表中查詢耗時,僅爲參考值,不作爲性能依據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章