关于Oralce三种访问路径
来源:互联网 发布:web关联数据库 编辑:程序博客网 时间:2024/06/05 17:27
A. 全表扫描 (FULL TABLE SCANS)
B.ROWID扫描 (ROWID SCANS)
ROWID扫描(ROWID SCANS)是通过ROWID中数据文件和块位置访问数据行。一般作为访问索引后的第二步,如果访问的列全部包含在索引中,则不会执行ROWID扫描。
C.索引扫描(INDEX SCANS)
全索引扫描(full index scan、FIS)
逐一读取索引中的所有块,由于索引中数据已按索引键排序,因此会忽略掉排序,可能发生的情况如下:
A. ORDER BY中的列全部在某个索引中
B. ORDER BY中列的顺序满足索引中前导列的顺序时
C. 使用GROUP BY且该子句中的列在索引中时
B. ORDER BY中列的顺序满足索引中前导列的顺序时
C. 使用GROUP BY且该子句中的列在索引中时
快速全索引扫描(fast full index scan、FFIS):
只扫描索引中的数据,不会扫描表中的数据;由于索引中数据未按索引键排序,因此不能忽略掉排序。当同时满足下列条件时,Oracle用FFIS替代FIS或FTS:
1.查询的所有列均包含在索引中
2.索引中的列至少一个具有not null约束(10g开始的,原低版本的系统中为查询的列中不包含任何null值)
索引范围扫描(index range scan):
索引范围扫描是访问选择性数据最常用的扫描方式;按顺序的对某个索引进行扫描,返回数据是升序排列的,可以使用唯一索引和非唯一索引;如果对索引列使用ORDER BY/GROUP BY则可省略排序。
下列情形中会发生索引范围扫描:
A.在唯一索引上使用范围操作符(>、<、>=、<=、<>、BETWEEN)
B.在组合索引上使用部分列进行查询,导致查出多行
索引唯一扫描 (index unique scan)、
区别索引范围扫描的是索引唯一扫描要么返回0行数据要么返回1行数据,不会返回多行数据。Oracle使用索引唯一扫描时,一旦发现时数据,则停止继续扫描,因此效率很高。如果唯一索引是组合索引,则至少需要参与索引的列作为引导列。
索引跳跃式扫描 (index skip scan)、
复当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到索引跳跃式扫描 。此外,还可以通过使用提示index_ss(CBO下)来强制使用索引跳跃式扫描。
位图索引扫描(bitmap index scan),
何时需要索引
一般地,对于从表的总行中的大部分查询只查询不到10%数据(有的称为2%-4%)的表,可以考虑创建索引。一般考虑的索引的原则包括:
对于经常以查询关键字为基础的表,并且该表中的数据行是均匀分布的
以查询关键字为基础,表中的数据行随机排序
表中包含的列数相对比较少(仅仅是相对,需要根据实际情况确定)
表中的大多数查询都包含相对简单的WHERE子句
表的记录数比较少的,不建议使用索引,如数据不超过1万行的表不要建立索
- 关于Oralce三种访问路径
- Oralce 分页 三种实现
- Oralce 分页 三种实现 .
- oralce 启动三种方式
- 关于web访问路径
- 配置文件的访问时的路径获取三种方式
- Servlet的访问路径的配置的三种方式
- Struts2框架修改访问路径后缀的三种方式
- Servlet 访问路径的三种配置方式
- 关于访问相对路径问题
- 关于访问路径的问题
- Oralce 设置远程访问
- 关于Oralce收购Sun
- oralce em访问的地址
- 关于静态资源访问的路径问题
- 关于struts2访问servlet API的三种方法详解
- Struts2的访问路径三:使用通配符配置访问路径二
- Struts2学习笔记三——Namespace与访问路径
- 设置UINavigation的背景图片和背景颜色
- 计算机视觉网址汇总
- 国内国外最好的java开发论坛及站点
- HDU Today 最短路
- chrome 源码分析
- 关于Oralce三种访问路径
- Android4.0状态栏透明教程
- Word2003和2007中表格斜线表头的绘制方法
- 测试超时处理
- Java集合框架系列教程一:集合框架简介
- 「译」Java集合框架系列教程三:Collection接口
- Oracle Error code
- 访问 IIS 元数据库失败 的解决方法
- 「译」Java集合框架系列教程四:Set接口