Oracle 中伪数列ROWID

本文深入探讨Oracle的ROWID机制,解释其如何作为表中记录的唯一物理地址,以及ROWID如何在提高查询效率方面发挥作用。文章详细介绍了ROWID的结构、组成部分以及在数据布局变动时的行为,同时提供了查询记录的快速方法。

  Oracle 的ROWID 用来唯一标识表中的一条记录,是这条数据在数据库中存放的物理地址。

  一般来说,每一行数据对应的rowid是固定而且唯一的,在这一行数据存入数据库的时候就确定了。

  可以利用rowid来查询记录,而且通过rowid查询记录是查询速度最快的查询方法。ROWID只有在表发生移动(比如表空间变化,数据导入/导出以后),才会发生变化。

  ROWID的结构:

  有18位,每位使用base-64代码,包括a-z,A-Z,0-9,+,- 共64个字符表示。 A表示0,B表示1,。。。Z表示25,a表示26,。。。z表示51,0表示52,。。9表示61,+表示62,-表示63。ROWID具体可以划分为4个部分。
  
  1-6位:代表OBJECT ——数据对象编码 。将其转化成数字后匹配DBA_OBJECTS中DATA_OBJECT_ID字段值,可以确定表信息。
  7-9位:文件相对值 ——相关文件编码。 相对表空间的数据文件号。
  10-15:文件中的BLOCK ——块编码。 表示这条记录在数据文件中的第几个BLOCK中。
  16-18:BLOCK中的SLOT值 ——行编码。表示这条记录是BLOCK中的第几条记录。
 
  注:在FORM开发过程,如果数据块重新布局,ROWID项的属性值就会自动变为4,此时需手工修改值为18。

转载于:https://www.cnblogs.com/Cqiang/archive/2012/10/30/2746531.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值