oracle中常见的几种提取数据的方式可以分为三大类:全表扫描,通过rowid访问和索引扫描。下面先看一下全表扫描。

1.table full scan全表扫描:这个应该是平时工作中比较常见,一般在返回数据量比较大的情况出现,其扫描方式就是扫描区,根据extent读取数据,因为一个区包含的是block,索引全表扫描属于多快读。

2.index unique scan索引唯一扫描:根据名字就可以猜到这种扫描方式只会发生在primary key或者unique key的索引等值查找上,索引唯一扫描属于单块读,sql会根据条件判断自动走这种扫描方式,一般返回一条记录,所以基本上不会有db file sequential read这种类型的等待事件发生。

3.index range scan索引范围扫描:这种扫描方式和index unique scan扫描方式有点类似,发生在对unique key或者primary key的索引范围查找的情况,这点和index unique scan扫描方式的等值查找有区别,此外还会发生在non-unique index的等值情况,范围查找的情况下,可以手动hint走这个扫描方式:index(表名 索引名)。

4.index skip scan索引跳跃扫描:这种扫描方式只会发生在组合索引上,也属于单块读,一般出现在引导列(组合索引的第一列)没有包含在where条件中,而且引导列基数比较低,这种扫描方式一般返回的数据量相对较少,可以手动hint指定扫描方式:index_ss(表名 索引名)。

5.index full scan索引全扫描:通常发生在如下几种情况,但是并不一定会走这种扫描方式:1.sql中有order by排序,且order by的列都包含在索引中,且顺序一致。2.在sort merge join的时候,如果要查询的列可以通过索引获得,那就没有必要全表扫描,而且index full scan返回的结果是已经排序了的结果。3.当查询中有group by,且group by的列都包含在索引中。当然这种扫描方式也是单块读,但是扫描的结果是排序后的结果。可以用hint指定扫描方式:index(表面 索引名)。

6.index fast full scan索引快速全扫描:这种扫描方式和上面几种扫描方式不一致,这种扫描方式属于多快读,当sql返回的数据直接从索引就可以完全获取,那oracle就不会走全表扫描了,直接就回走索引快速全扫描,这种方式有点 类似全表扫描,也是一个区一个区的扫描,和全表扫描一样,结果不会排序。可以用hint指定扫描方式:index_ffs(表名 索引名)。

7.index range scan descending索引降序范围扫描:这种方式和index range scan一样,只不过是按照降序扫描,因为索引默认是按照升序排列的,当遇到order by desc的时候,可能就会进行降序范围扫描,一般在分页当中比较多,当然和index range scan一样的是,这种扫描方式也属于单块读。可用hint指定扫描方式:index_desc(表名 索引名)。

8.index full scan(max/min)索引最大/最小扫描:这种扫描方式一般发生在select max(xxxx)或者select min(xxxx)中,并且xxxx列上有索引才会选择这种扫描方式,也属于单块读,sql自动判断是否该用这种扫描方式。

9.mat_view rewrite access full物化视图全表扫描:物化视图机制就相当于表,所以这种扫描方式属于多快读,一般出现在sql可以从物化视图中直接获取结果,就会走物化视图扫描这种方式。

当然还有其他特殊的数据扫描方式,这里就不一一举例了,在以后在案列中,会介绍这些扫描方式的差别。

转载请注明: 版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

最后编辑:2014-01-23作者:Jerry

一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL

oracle 取第三大的值,Oracle 常见的几种访问提取数据的方式!相关推荐

  1. oracle 取第三大的值,Oracle数据基础(三)

    一. 视图,序列,索引 视图 1. 什么是视图 视图(VIEW)也被称作虚表,是一组数据的逻辑表示 视图对应于一条SELECT语句,结果集被赋予一个名字,即视图名字 视图本身并不包含任何数据,它只包含 ...

  2. 选择图片横向拼接html,一些比较常见的几种组合多张图片的方式

    在日常生活中,我们经常会对一些手机中的照片或网上寻找的图片进行处理,以下分享了一些日常比较常见的几种组合高清图片与手机照片的方式以及使用本站的在线工具进行简单的合成处理办法. 一.横向拼接图片 顾名思 ...

  3. python 提取元组中的值_如何从Python元组中提取数据?

    我是Python的新手.对于这些数据,我正在和Jupytier iPython合作.我试图从csv文件中提取数字数据,然后运行Sklearn.我有: 用Pandas打开并读取CSV文件 将数据设置为字 ...

  4. oracle取最小值怎么写,【Oracle】oracle取最大值和最小值的几个方法汇总

    (1)oracle使用keep分析函数取最值记录 --取工资sal最大的雇员姓名及其工资,以及工资sal最少的雇员姓名及其工资 selectdeptno, empno, ename, sal,max( ...

  5. oracle取_后的数字,Oracle SQL语句实现数字四舍五入取整

    取整(向下取整): select floor(5.534) from dual; select trunc(5.534) from dual; 上面两种用法都可以对数字5.534向下取整,结果为5. ...

  6. oracle 取系统当前年份_oracle查询以当前年份为准的近些年数据

    今天在工作中遇到了一个查询近几年数据的问题,oracle学的比较渣渣,学习了一下. 举个例子: 比如说员工入职,我想看这个公司的员工入职情况,然后做一个趋势统计表. 以当前年份为准,查看近5年的情况趋 ...

  7. oracle取32位唯一码,Oracle导出导入dmp文件命令,以及excel生成32位uuid

    Oracle导出dmp文件命令,以及excel生成64位uuid 导出命令cmd中 expdp mms/xfkjerp@orcl schemas=mms dumpfile=expdp.dmp DIRE ...

  8. java oracle rs.next_使用jsp连接oracle时,rs.next()值始终为false,表中存在数据

    连接部分代码如下: 连接部分代码如下: String drivers="oracle.jdbc.driver.OracleDriver"; String url="jdb ...

  9. oracle中获取列的值,oracle - Oracle-SQL从具有特定列和值的所有表中获取数据 - SO中文参考 - www.soinside.com...

    假设我们有一个表ACCOUNT,其中的CUST_ID列如下:SQL> SELECT OWNER, A.TABLE_NAME, COLUMN_NAME FROM 2 ALL_TAB_COLS A ...

最新文章

  1. 谷歌人为干预搜索结果被曝光:增加大公司曝光,主动营造岁月静好
  2. javascript”面向对象编程”- 1万物皆对象
  3. 使用Notepad++正则提取数据,然后进行替换
  4. Volume Shadow Copy Service(VSS)如何工作
  5. Divide Two Integers leetcode java
  6. 计算机word的函数怎么用,Word公式编辑器怎么使用,教您怎么使用
  7. Python爬虫自学系列(四)
  8. 其他——SPSS做线性回归分析最好的例子
  9. 多个excel表合并成一个excel表
  10. 读【选修计算机专业的伤与痛】
  11. node.js、React和VUE的纯理论
  12. 2023计算机考研408参考答案
  13. 2005年图灵奖--彼得·诺尔简介
  14. A5SHB,A5SHB芯片三极管规格书
  15. 【C语言】求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一个函数根据求出的最大公约数求最小公倍数。
  16. <Rasa实战>第五章实例运行
  17. 牛客3006D-牛牛与牛妹的约会-思维
  18. (干货)如何在k8s部署应用
  19. html代码怎么把竖排转横排,文本中把横排字变竖排怎么变
  20. sw2020sw无法获得下列许可,使用许可文件不支持此版本 解决方案

热门文章

  1. 收藏收藏:工作用了很久的自主开发的Sql Server代码生成器,我开源了(.NET Winform)
  2. HTTPS-思君如满月,日日减清辉
  3. 蝙蝠侠一键改udid软件_对于您的第一个HTML代码,让我们帮助蝙蝠侠写一封情书...
  4. 装饰器python3菜鸟教程_认识Python装饰器
  5. python 元类 详解_Python 元类详解 __new__、__init__、__call__、__metacalss__
  6. map.clear还是重新new_JS 的 new 到底是干什么的?
  7. docker上传镜像到仓库
  8. Python实现定时任务,定时采集数据,定时执行脚本程序都可以
  9. Python3网络爬虫开发实战,Cookies 池的搭建,破解反爬虫!
  10. 原版英文书籍《Linux命令行》阅读记录6 | 重定向