Oracle Rownum分頁改寫
Oracle Rownum分頁改寫
---說明:案例來自《 收穫,不止SQL最佳化》
建立測試資料:
---drop table test_rownum purge;
SQL > create table test_rownum as select * from dba_objects ;
SQL > select count (*) from test_rownum ; ---75793
SQL > alter session set statistics_level = all ;
SQL > set linesize 1000
SQL > set pagesize 500
分頁寫法 1 :
SQL > select * from ( select t. *, rownum as rn from test_rownum t ) a where a.rn >= 1 and a.rn <= 10 ;
檢視執行計劃:
SQL > select * from table ( dbms_xplan.display_cursor ( null , null , 'allstats last' ));
分頁寫法 2 :
SQL > select * from ( select t. *, rownum as rn from test_rownum t where rownum <= 10 ) a where a.rn >= 1 ;
檢視執行計劃:
SQL > select * from table ( dbms_xplan.display_cursor ( null , null , 'allstats last' ));
總結: 寫法1的buffer為1080,掃描真實資料為75793條,寫法2的buffer只有5,掃描真實資料為10條,效能較寫法1有很大改善。
歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2693986/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 使用rownum進行分頁的陷阱Oracle
- oracle 使用rownum進行分頁的陷阱(2)Oracle
- oracle rownum分頁與顯示記錄小測Oracle
- 淺析Oracle(rownum)和Mysql(limit)分頁的區別OracleMySqlMIT
- oracle 分頁寫法Oracle
- Oracle rownum 分頁引起的效率問題及優化思路Oracle優化
- Oracle rownum 分頁引起的效率問題及最佳化思路Oracle
- Rownum分頁故障解決一例
- Oracle ROWNUMOracle
- oracle的rownumOracle
- oracle偽列rownumOracle
- Oracle中的rownumOracle
- oracle分頁Oracle
- Oracle:On ROWNUM and Limiting ResultsOracleMIT
- lightdb -- Oracle相容 -- rownumOracle
- 【 Oracle中rownum的用法 】Oracle
- Oracle case when改寫SQLOracleSQL
- 利用rownum分組排序去重排序
- 讀寫分離 & 分庫分表 & 深度分頁
- 【Oracle】-【ROWNUM與索引】-索引對ROWNUM檢索的影響Oracle索引
- jstl 寫的分頁JS
- Oracle的rownum原理和使用Oracle
- Oracle中的Rownum 欄位Oracle
- 關於Oracle偽列rownumOracle
- ORACLE 中ROWNUM用法總結!Oracle
- ORACLE 中ROWNUM用法總結Oracle
- Oracle到PostgreSQL等價改寫OracleSQL
- Oracle的特性分頁Oracle
- Oracle 分頁方法研究Oracle
- oracle分頁查詢Oracle
- oracle 分頁問題Oracle
- ThinkPHP 自帶的分頁——改變樣式PHP
- Oracle中rownum和row_number()Oracle
- ORACLE 中ROWNUM用法總結! (轉)Oracle
- MySQL LIMIT 如何改寫成Oracle limitMySqlMITOracle
- oracle sql tunning 15 --常用改寫OracleSQL
- mySql\oracle分頁機制MySqlOracle
- Oracle的分頁查詢Oracle