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)和Mysql(limit)分頁的區別OracleMySqlMIT
- oracle 分頁寫法Oracle
- lightdb -- Oracle相容 -- rownumOracle
- Oracle:On ROWNUM and Limiting ResultsOracleMIT
- Oracle中rownum和row_number()Oracle
- Oracle case when改寫SQLOracleSQL
- jq寫分頁
- Oracle到PostgreSQL等價改寫OracleSQL
- Oracle的特性分頁Oracle
- jstl 寫的分頁JS
- 讀寫分離 & 分庫分表 & 深度分頁
- ThinkPHP 自帶的分頁——改變樣式PHP
- 從3分漲到8.5分,誰在改寫《原神》評分?
- Oracle 儲存過程分頁 + Sqlsugar呼叫Oracle儲存過程SqlSugar
- MySql/Oracle和SQL Server的分頁查MySqlOracleServer
- jquery寫的ajax分頁外掛jQuery
- Oracle資料庫中的分頁查詢Oracle資料庫
- 重寫 API 資源分頁資料API
- Laravel 把傳參的分頁 url 改為 /page/11Laravel
- .net中使用oracle資料庫分頁小技巧Oracle資料庫
- Oracle總結【SQL細節、多表查詢、分組查詢、分頁】OracleSQL
- Oracle最佳化之單表分頁最佳化Oracle
- 如何寫一個簡單的分頁元件(原理)元件
- 面向Vue新人:用Vue寫一個分頁器Vue
- hibernate 自定義表名與列名 - 增刪改查分頁 - 相容Mysql和OracleMySqlOracle
- mysql分頁-limit offset分頁MySqlMIT
- oracle大頁Oracle
- hyperf 使用模型寫 union 子查詢並做分頁模型
- Oracle優化案例-單表分頁語句的優化(八)Oracle優化
- flask 分頁 | 翻頁Flask
- 動態路由,透過id改變,改頁面路由
- order by改分組排序排序
- Oracle靜態監聽中SID_NAME區分大小寫嗎?Oracle
- 設定Oracle的使用者密碼不區分大小寫Oracle密碼
- php 分頁 分頁類 簡單實用PHP
- 分頁器
- Flask——分頁Flask
- 集合分頁