oracle优化3(访问Table的方式)
2011-03-31 13:07
260 查看
访问Table的方式
ORACLE 采用三种访问表中记录的方式: 全表扫描、通过ROWID访问表、索引扫描
全表扫描(full table scan)
全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.
通过ROWID访问表(table access by ROWID)
行的ROWID指出了该行所在的数据文件、数据块以及行在该块中的位置,所以通过ROWID来存取数据(表中记录的物理位置信息)可以快速定位到目标数据上,是Oracle存取单行数据的最快方法。
为了通过ROWID存取表,Oracle 首先要获取被选择行的ROWID,或者从语句的WHERE子句中得到,或者通过表的一个或多个索引的索引扫描得到。Oracle然后以得到的ROWID为依据定位每个被选择的行。
索引扫描(Index scan)
我们先通过index查找到数据对应的rowid值(对于非唯一索引可能返回多个rowid值),然后根据rowid直接从表中得到具体的数据,这种查找方式称为索引扫描或索引查找(index lookup)。一个rowid唯一的表示一行数据,该行对应的数据块是通过一次i/o得到的,在此情况下该次i/o只会读取一个数据库块。
在索引中,除了存储每个索引的值外,索引还存储具有此值的行对应的ROWID值。索引扫描可以由2步组成:(1) 扫描索引得到对应的rowid值。 (2) 通过找到的rowid从表中读出具体的数据。
ORACLE 采用三种访问表中记录的方式: 全表扫描、通过ROWID访问表、索引扫描
全表扫描(full table scan)
全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.
通过ROWID访问表(table access by ROWID)
行的ROWID指出了该行所在的数据文件、数据块以及行在该块中的位置,所以通过ROWID来存取数据(表中记录的物理位置信息)可以快速定位到目标数据上,是Oracle存取单行数据的最快方法。
为了通过ROWID存取表,Oracle 首先要获取被选择行的ROWID,或者从语句的WHERE子句中得到,或者通过表的一个或多个索引的索引扫描得到。Oracle然后以得到的ROWID为依据定位每个被选择的行。
索引扫描(Index scan)
我们先通过index查找到数据对应的rowid值(对于非唯一索引可能返回多个rowid值),然后根据rowid直接从表中得到具体的数据,这种查找方式称为索引扫描或索引查找(index lookup)。一个rowid唯一的表示一行数据,该行对应的数据块是通过一次i/o得到的,在此情况下该次i/o只会读取一个数据库块。
在索引中,除了存储每个索引的值外,索引还存储具有此值的行对应的ROWID值。索引扫描可以由2步组成:(1) 扫描索引得到对应的rowid值。 (2) 通过找到的rowid从表中读出具体的数据。
相关文章推荐
- Weblogic访问oracle的三种JDBC方式
- oracle不提供CREATE TABLE IF NOT EXIST方式创建表
- 表访问方式---->通过ROWID访问表(table access by ROWID)
- Oracle数据库访问性能优化
- ORACLE表连接方式的分析与优化
- Oracle Table连接方式分析
- Oracle的优化器的 RBO和CBO 方式
- Oracle的优化器有两种优化方式
- Oracle使用Linux nfs方式挂载备份文件后访问出错The file header is corrupted
- 索引、物化视图-oracle 性能调优之 数据访问路径优化-by小雨
- 使用数组方式访问Oracle,提高性能
- 一次访问ORACLE数据字典的优化
- Related to Oracle 面向程序员的数据库访问性能优化法则(转)
- Oracle监听配置(二)--访问方式完全解析
- 访问图像像素信息方式的优化
- Oracle 学习之性能优化(六)访问路径
- c#通过Oracle.DataAccess访问Oracle数据库的性能及访问方式小结
- 采用OCI方式访问Oracle时出现UnsatisfiedLinkError错误
- oracle 索引访问方式
- Oracle的优化器的优化方式