转自:http://blog.itpub.net/271063/viewspace-1061279/

-- 连接数据库 创建测试用户
-- Connected to Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 
-- Connected as system@al32_192.168.56.120

create user scott identified by tiger default tablespace users;
grant connect,resource to scott;
grant unlimited tablespace to scott;

-- 创建测试表
create table big_table
as
select rownum id, a.*
  from all_objects a
 where 1=0
/
alter table big_table nologging;

-- 添加200万测试记录
declare
    l_cnt number;
    l_rows number := &1;
begin
    insert /*+ append */
    into big_table
    select rownum, a.*
      from all_objects a
     where rownum <= &1;
    l_cnt := sql%rowcount;
    commit;
    while (l_cnt < l_rows)
    loop
        insert /*+ APPEND */ into big_table
        select rownum+l_cnt, 
               OWNER, OBJECT_NAME, SUBOBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID,
               OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUS,
               TEMPORARY, GENERATED, SECONDARY, NAMESPACE, EDITION_NAME,
               SHARING,EDITIONABLE,ORACLE_MAINTAINED  
          from big_table
         where rownum <= l_rows-l_cnt;
        l_cnt := l_cnt + sql%rowcount;
        commit;
    end loop;
end;
/
alter table big_table add constraint big_table_pk primary key(id);
exec dbms_stats.gather_table_stats( user, 'BIG_TABLE', estimate_percent=> 1);

-- 查看占用磁盘空间大约280兆
SQL> select 35862*8 from dual;
   35862*8
----------
    286896

-- 开始使用oracle自带的分页子句,去前三条记录。
SQL> set timing on
SQL> 
SQL> select id,object_name from big_table
  2  order by id fetch first 3 rows only ;
        ID OBJECT_NAME
---------- --------------------------------------------------------------------------------
         1 ORA$BASE
         2 DUAL
         3 DUAL
Executed in 0.531 seconds

SQL> select id,object_name from big_table
  2  order by id
  3  offset 3 rows fetch next 3 rows only;
        ID OBJECT_NAME
---------- --------------------------------------------------------------------------------
         4 MAP_OBJECT
         5 SYSTEM_PRIVILEGE_MAP
         6 SYSTEM_PRIVILEGE_MAP
Executed in 0.407 seconds

SQL> select id,object_name from big_table
  2  order by id
  3  offset 6 rows fetch next 3 rows only;
        ID OBJECT_NAME
---------- --------------------------------------------------------------------------------
         7 TABLE_PRIVILEGE_MAP
         8 TABLE_PRIVILEGE_MAP
         9 USER_PRIVILEGE_MAP
Executed in 0.406 seconds

SQL> select id,object_name from big_table order by id
  2  offset 0 rows fetch next 3 rows only;
        ID OBJECT_NAME
---------- --------------------------------------------------------------------------------
         1 ORA$BASE
         2 DUAL
         3 DUAL
Executed in 0.406 seconds

SQL>

在省厅查人时,可以使用这项技术。原来离不了rownum. IBATIS是否有适应oracle12c的设置呢?

[转]oracle 12c 中的分页子句的更多相关文章

  1. oracle 12c 中asm元数据是否有所变化

    详见原文博客链接地址: oracle 12c 中asm元数据是否有所变化

  2. Oracle 12c中新建pdb用户登录问题分析

    Oracle 12c新建用户登录问题分析1 用sys用户新建用户,提示公用用户名或角色名无效.原因:Oracle 12c中,在容器中建用户(或者应该称为使用者),须在用户名前加c##.默认登录连接的就 ...

  3. 浅析Oracle 12c中Data Guard新特性

    浅析Oracle 12c中Data Guard新特性   写在前面 无论是做Oracle运维的小伙伴还是老伙伴,想必对Oracle数据库的数据级灾备核心技术—Data Guard是再熟悉不过了!这项从 ...

  4. Oracle数据库中的分页--rownum

    1. 介绍 当我们在做查询时,经常会遇到如查询限定行数或分页查询的需求,MySQL中可以使用LIMIT子句完成,在MSSQL中可以使用TOP子句完成,那么在Oracle中,我们如何实现呢? Oracl ...

  5. 如何在Oracle 12C中Drop/Truncate多个分区 (Doc ID 1482264.1)

    How to Drop/Truncate Multiple Partitions in Oracle 12C (Doc ID 1482264.1) APPLIES TO: Oracle Databas ...

  6. 如何在Oracle 12C中添加多个分区 (Doc ID 1482456.1)

    How to Add Multiple Partitions in Oracle 12C (Doc ID 1482456.1) APPLIES TO: Oracle Database - Enterp ...

  7. oracle 12c中种子数据库的隐藏与保护

    Oracle 12c种子数据库(pdbseed)的状态是read only,这是因为Oracle对种子数据库进行了保护,避免遭到破坏.保护好种子数据库的目的,是为了以此为模板,新建pdb数据库. 新的 ...

  8. 在Oracle 12C中使用scott账号

    在Oracle11g中默认是有scott账号的,但在Oracle 12C中则不能直接使用. 我的机器环境: 操作系统:Windows Server 2008 R2 64位 Oracle版本:Oracl ...

  9. Oracle 12c中CDB与PDB实例参数更改影响实验

    基础知识单薄的同学,请逐字逐句阅读以下概念,来自于博客园AskScuti. 预备知识:什么是参数文件.存放位置.参数文件的分类和参数文件的命名方式.参数文件如何创建.参数文件加载顺序.参数分类.参数修 ...

随机推荐

  1. 创建 shiny 应用程序

    R 本身是一个优秀的数据分析和数据可视化平台.然而,我们通常不会将 R 和分析脚本提供给客户,让客户自己运行.数据分析的结果不仅可以在 HTML 网页.PDF 文档或 Word 文档中显示,还可以呈现 ...

  2. SpringBoot在启动时的多环境配置以及加载顺序

    通常我们在开发完成一个SpringBoot项目时,总是要打包部署的. 在启动SpringBoot应用时,我们常常会使用命令java -jar xxx.jar来启动这个服务. 命令java -jar 除 ...

  3. nodejs路由中:冒号

    路由必看的博客博客,也是学习node必看的博客:http://www.open-open.com/lib/view/open1409929982338.html 下面是一些路由例子,以及与之相匹配的关 ...

  4. Mysql中FIND_IN_SET和REPLACE函数简介

    一  FIND_IN_SET() SELECT * from u_user where FIND_IN_SET('32',tags) 上面的sql是精确查找,查找表中tags中含有32的记录(注意这里 ...

  5. HDU 4842 距离压缩DP

    过河 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submissi ...

  6. 通读cheerio API-网络爬虫

    所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成. ###cheerio ...

  7. 关闭定时器(setTimeout/clearTimeout|setInterval/clearInterval)

    1.1 开启Timeout程序: scope.setTimeout("functionName()" | functionHandle, timeValue) 返回值:timerI ...

  8. BOM之其他浏览器对象的使用

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  9. Big Table中文翻译

    题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才. 官方的 Google Reader blog 中有对BigTable 的解释.这是Google 内 ...

  10. c#.net利用RNGCryptoServiceProvider产生任意范围强随机数的办法

    //这样产生0 ~ 100的强随机数(含100)int max = 100;int rnd = int.MinValue;decimal _base = (decimal)long.MaxValue; ...