主页 > 知识库 > 数据库 > Oracle >

探究Oracle分页查询(3)

来源:中国IT实验室 作者:佚名 发表于:2012-08-27 09:58  点击:
当前所在页:currentPage:3 每页所显示长度:lineSize:2 由于总共有5条记录,所以在此查询中只有一条记录。 以上代码便是分页查询的核心代码。 功能上实现了,那么接下来需要考虑到效率问题,在上面的文章中我们涉

当前所在页:currentPage:3
   
    每页所显示长度:lineSize:2
   
    由于总共有5条记录,所以在此查询中只有一条记录。
   
    以上代码便是分页查询的核心代码。
   
    功能上实现了,那么接下来需要考虑到效率问题,在上面的文章中我们涉及到两种分页的方式。一种用betweenand方式,另一种用三层结构子查询的方式。在查询大数据量分页的时候,他们两个谁更有优势呢?
   
    我们知道Oracle中有自带的sample数据库,而我们一般用的是scott/tiger账户下的数据库,但是里面的数据比较少,但是在sh账户下的数据库中有18个表,算是比较多的表(18个)。而且表中的数据也非常的丰富(百万级)。
计算机生成了可选文字: SQL>soloctcount(.)fromtab;COUNT(")18
    找到一个表sales中有将近100万条记录.
 
计算机生成了可选文字: SQL>soloctcount(.)fromsales;COUNT(")9188峪3
    那么我们就从这个表下手,sales表中的字段:
 
计算机生成了可选文字: SQL>descsales;一曼垫___________________曼贡尧宝?PRODIDNDTNULLCUSTIDNDTNULLTIHEIDNDTNULLCH自NNELIDNDTNULLPROHOIDNDTNULLOU自NTITVSOLDNDTNULL自HOUNTSOLDNDTNULL类型NUHBERNUHBERD自TENUHBERNUHBERNUHBER(10,2)NUHBER(10,2)
    对其表进行分页查询.
    1通过三层结构子查询进行分页:
 
计算机生成了可选文字: SOL>SeleCt己les目here"from(selectro目nUmrn,prod_id,cust_id,tioe_id,quantitg_soldfromsro目nUm<800000)temp"heretemP.rn>799997;一Ul代J代」下占133es『RNpRODCUSTIDTIHEIDOU自NTITVSOLD00月月799998799999693626一9775勺26一9
    经过亲自测试,查询时间几乎是一瞬间,在我点击回车的同时结果就出来了.(未用专业测试工具)

有帮助
(0)
0%
没帮助
(0)
0%