Oracle 表的扫描方式及连接方法 Oracle 表的扫描方式是指 Oracle 访问表的方法,包括全表扫描、索引扫描、索引范围扫描、索引唯一扫描等。这些扫描方式的选择取决于查询的条件、索引的类型和数据的分布。 一、全表扫描(Full Table Scans, FTS) 全表扫描是 Oracle 访问表的最基本的方法。 Oracle 读取表中所有的行,扫描该表中高水位线(HWM, High Water Mark)以下的所有数据块。随着数据量的增加,高水位线会不断上涨,读取的数据块就会不断增加。在做 Delete 操作的时候,即使把表中的数据都删掉了,高水位线不会降低,这样在做全表扫描的时候效率依然不会提高。 二、通过 ROWID 的表存取(Table Access by ROWID) 通过 ROWID 的表存取是 Oracle 存取单行数据的最快方法。行的 ROWID 指出了该行所在的数据文件、数据块以及行在该块中的位置,所以通过 ROWID 来存取数据可以快速定位到目标数据上。 三、索引扫描(Index Scan) 索引扫描是一种高效的访问方法。我们先通过索引查找到数据对应的 ROWID 值,然后根据 ROWID 直接从表中得到具体的数据。索引扫描可以由 2 步组成:(1)扫描索引得到对应的 ROWID 值。 (2)通过找到的 ROWID 从表中读出具体的数据。索引扫描效率并不会随着数据量的递增而明显降低。 根据索引的类型与 where 限制条件的不同,有 4 种类型的索引扫描: (1)索引唯一扫描(Index Unique Scan) 索引唯一扫描是指通过唯一索引查找一个数值经常返回单个 ROWID。如果存在 UNIQUE 或 PRIMARY KEY 约束(它保证了语句只存取单行)的话,Oracle 经常实现唯一性扫描。 (2)索引范围扫描(Index Range Scan) 索引范围扫描是指使用一个索引存取多行数据。在唯一索引上使用索引范围扫描的典型情况下是在谓词(where 限制条件)中使用了范围操作符(如>、<、<>、>=、<=、between)。在非唯一索引上,等值查询可能返回多行数据,所以在非唯一索引上都使用索引范围扫描。 (3)索引全扫描(Index Full Scan) 索引全扫描是指扫描整个索引来获取所有的 ROWID 值,然后根据这些 ROWID 值从表中读出具体的数据。 (4)索引快速扫描(Index Fast Full Scan) 索引快速扫描是一种特殊的索引全扫描,它可以快速扫描索引来获取所有的 ROWID 值,然后根据这些 ROWID 值从表中读出具体的数据。 Oracle 表的扫描方式及连接方法是 Oracle 访问表的基础,选择合适的扫描方式可以提高查询效率和性能。
- 粉丝: 1
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 国开-网络安全技术-实验一 搭建网络安全演练环境.doc
- 国开-网络安全技术-实验八 SQL注入工具使用.doc
- 用python写的一些小工具
- 国开-微积分基础-微积分基础下载作业word版.doc
- 国开-微积分基础-大作业word版.docx
- 排序算法 Sorting 查找算法
- HTML5实现好看的艺术设计师作品展示模板.zip
- HTML5实现好看的音乐乐队演出票务网站模板.zip
- HTML5实现好看的营销推广公司网站模板.zip
- HTML5实现好看的音频播客个人主页模板.zip
- HTML5实现好看的婴儿护理中心网站模板.zip
- HTML5实现好看的应用程序设计网站模板.zip
- HTML5实现好看的游戏碟片厂商官网模板.zip
- HTML5实现好看的游轮帆船租赁网站模板.zip
- HTML5实现好看的瑜伽培训运动网站模板.zip
- HTML5实现好看的游艇租赁服务公司网站模板.zip