Oracle Rownum分页改写

来源:这里教程网 时间:2026-03-03 15:43:01 作者:

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",共同学习,共同成长!!!

相关推荐