在查询中有时使用到伪列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这样的操作!
 
 
 
 SQL> select rownum rn ,a.* from cnmir.ew_auctions a where rownum<50000;

Execution Plan
----------------------------------------------------------
Plan hash value: 721966694

----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 49999 | 4833K| 163 (2)| 00:00:02 |
|* 1 | COUNT STOPKEY | | | | | |
| 2 | TABLE ACCESS FULL| EW_AUCTIONS | 49999 | 4833K| 163 (2)| 00:00:02 |
----------------------------------------------------------------------------------

SQL> select * from cnmir.ew_auctions where issue_id<80;

Execution Plan
----------------------------------------------------------
Plan hash value: 518049957

---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 99 | 1379 (2)| 00:00:17 |
|* 1 | TABLE ACCESS FULL| EW_AUCTIONS | 1 | 99 | 1379 (2)| 00:00:17 |
---------------------------------------------------------------------------------

可见COUNT STOPKEY 机制是只针对rownum而设定的!

关于COUNT STOPKEY的工作机制相关推荐

  1. namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理...

    HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...

  2. 透过 In-memory Channel 看 Knative Eventing 中 Broker/Trigger 工作机制

    In-memory Channel是当前Knative Eventing中默认的Channel, 也是一般刚接触Knative Eventing首先了解到的Channel.本文通过分析 In-memo ...

  3. android 6.0 高通平台sensor 工作机制及流程(原创)

    最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...

  4. android 6.0 高通平台sensor 工作机制及流程

    最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...

  5. 详解模板引擎工作机制

    本文讲的是详解模板引擎工作机制, 我已经使用各种模版引擎很久了,现在终于有时间研究一下模版引擎到底是如何工作的了. 简介 简单的说,模版引擎是一种可以用来完成涉及大量文本数据的编程任务的工具.一般而言 ...

  6. Seata分布式事务模式(TA、TCC、XA、SAGA)工作机制

    文章目录 前言 分布式应用痛点 分布式事务解决方案 Seata Seata AT模式 前提 工作机制 一阶段 二阶段-提交 二阶段-回滚 Seata TCC模式 前提 工作机制 Seata Saga模 ...

  7. 2021年大数据HBase(十四):HBase的原理及其相关的工作机制

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的原理及其相关的工作机制 一.HBase的flus ...

  8. java语言的实现机制_JAVA语言之Java NIO的工作机制和实现原理介绍

    本文主要向大家介绍了JAVA语言之Java NIO的工作机制和实现原理介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 前言 本文只简单介绍NIO的原理实现和基本工作流程 I/O和 ...

  9. docker用gpu的参数_从零开始入门 K8s | GPU 管理和 Device Plugin 工作机制

    导读:2016 年,随着 AlphaGo 的走红和 TensorFlow 项目的异军突起,一场名为 AI 的技术革命迅速从学术圈蔓延到了工业界,所谓 AI 革命从此拉开了帷幕.该热潮的背后推手正是云计 ...

最新文章

  1. 虚拟化基础架构Windows 2008篇之1-虚拟化基础服务概述
  2. Android中shape属性详解
  3. cs-HtmlHelpers
  4. Oracle 随机获取N条数据
  5. 自由读写配置文件的艺术[java c++ node](二)
  6. 14.链表中倒数第k个结点
  7. java多线程学习-java.util.concurrent详解(五) ScheduledThreadPoolExecutor
  8. android 的接口回调,android 接口 接口回调
  9. Android Binder实现浅析-Binder驱动
  10. 如何制作图书专用标签
  11. 解决OneNote同步出错
  12. python调用pyd失效
  13. 停车场管理系统(一)
  14. java代理一(静态代理)
  15. Firebase入门使用 01
  16. 情人节程序员用HTML网页表白【告白气球,飞入我的心扉】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  17. python中加减乘除_Python基础算法综合:加减乘除四则运算方法
  18. (转载)BOX2D V2.3.0 用户手册中文版(第11章)-杂项
  19. 孙正义:软银愿景基金2号最早下月开始投资 专注AI领域
  20. Windows登录多个微信

热门文章

  1. python2与python3性能对比_对Python2与Python3中__bool__方法的差异详解
  2. 蓝卡在哪里_什么是蓝卡,魅力在哪里,让申请者为之着迷?
  3. lua脚本在redis集群中执行报错--Lua script attempted to access a non local key in a cluster node...
  4. 【CentOS】安装部署jenkins从git获取代码[转]
  5. AXURE RP8实战手册(完整版)
  6. 用不同的姿势求逆序对(复习篇)
  7. 低代码这么火,它的人才认证你考了吗?
  8. 秘密开发一年多,解密奥运史上首个数字云徽章
  9. 饿了么EMonitor演进史
  10. 业内首发,ACK@Edge支持高质量加密网络与精细化管理