动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   数据库 → 阅读文章

 Oracle SQL的优化(5)---关于rownum的操作

作者来源: 
阅读 数 334 人次 , 2006-5-11 15:58:00 

    在查询中有时使用到伪列rownum对使用伪列rownum的查询,优化器要么使用count操作,要么使用
count stopkey操作来对rownum计数器进行增量(注意:这里的count操作和count stopkey操作与count函
数没有任何关系),如果对rownum伪列应用一个限定条件,如:where rownum<10;则使用 count stopkey
操作,如果不为Rownum伪列指定限定条件,则是使用count操作。
例1:不在Rownum伪列上使用限定条件
 select id,rownum from employee;(在id列上有一个主键索引)
为了完成这个查询,优化器执行一个全索引扫描(主键索引),后跟一个count操作生成每个行的rownum值,
count操作不需要等待得到整个记录集,随着从employee表中返回记录,rownum计数器进行增量,从而确
定每个记录的rownum.
例2:在rownum伪列上使用一个限定
 select id,rownum from employee where rownum<10;
     为了实施限定条件,优化器用count stopkey操作代替count操作,它将rownum伪列的增量值与限定
条件中指定的值进行比较,如果rownum伪列的值大于限定条件中指定的值,则查询不再返回更多的行!
 
 注意:在where 子句中不能使用 rownum>10这样的操作,只能使用rownum<10这样的操作!
  
 本文Tagsoracle  优化  数据库  网站优化  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:ORACLE8i在Penitum4/WINDOWS机器上的安装
· 下一篇:Export/Import 使用技巧与常见错误
· MYSQL服务维护及应用设计笔记
· SQL Server补丁安装常见问题
· 一个实例讲解MySQL查询优化
· 如何拆分复制的Access 97数据库
· oracle中变异表触发器的处理


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077