ROWID 是一个类似于rownum的伪列,用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即
被确定且唯一。而对于聚簇表,由于聚簇特性,不同表上的记录由于存储在相同的簇上,因此会拥有相同的ROWID。数据库的大多数操作都是通
过ROWID来完成的,而且使用ROWID来进行单记录定位速度是最快的。下面将给出ROWID的相关描述。
一、ROWID的特性组成及用途
1、特性
相对唯一性(聚簇表上不唯一)
一旦确定,不可随意更改
使用10个字节存储(扩展rowid),显示为18位的字符串
特殊情况下,ROWID会发生变化(如下列情形)
表的导入导出操作
alter table tab_name move
alter table tab_name shrink space
flashback table tab_name
拆分分区表
分区表上更新一个值后记录被移入到新分区
合并两个分区
2、组成(扩展ROWID)
数据库对象的对象编号
数据库对象所在文件的文件编号
数据库对象上块的编号
块上的行编号(起始值为0)
3、用途
快速定位单行记录
展示行在表上如何存储
表上的一行的唯一标识符
用作数据类型 column_name rowid
4、限制rowid,扩展rowid
限制rowid用于早期Oracle版本(Oracle 8 以前),rowid由file#+block#+row#组成,占用6个bytes的空间
扩展rowid,由data_object_id#+rfile#+block#+row#组成,占用10个bytes的空间
二、ROWID的格式
三、查看ROWID信息及相关演示
1、查看堆表上rowid及获取rowid信息
2、查看簇表上的rowid
有关簇表请参考:簇表及簇表管理(Index clustered tables)
3、使用rowid访问数据的情形
4、使用rowid数据类型
5、rowid变化的情形
分享到:
相关推荐
oracle rowid rownum 等组成原理
mysql虚拟了一个rowid(类似跟oracle的rowid)--SQL语句
基于Oracle RowID实现批量数据的分页下载.pdf
Oracle数据库rowid深入探析.pdf
Oracle学习笔记(rownum和rowid),有具体的代码案例讲解rownum和rowid
oracle 数据库 rowid与rownum的使用
总结一下几种查找和删除重复记录的方法,适用于有大量重复记录的情况
利用rowid快速在线更新海量数据 利用rowid快速在线更新海量数据
oracle error invalid rowid
举例介绍在oracle中rownum和rowId的不同以及使用方法
本文主要是以实例形式介绍了Oracle查询中rownum与rowid的不同之处,以及以假设的方式为例,查询条件为rownum = 2,在查询出第一条记录时的具体内容的介绍。 在查询中,我们可以注意到,类似于 select xx from ...
oracle_SQL中rowid与rownum的使用
oracle_SQL中ROWID与ROWNUM的使用 很有用哦
1.2.1.9 ORACLE ROWID ........31 1.2.1.10 选择性..................31 1.2.1.11 群集因子(Clustering Factor) ..............31 1.2.1.12 二元高度(Binary height)....................31 1.2.1.13 ...
ROWID是ORACLE中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。ROWID它是一个伪列,它并不实际存在于表中。它是ORACLE在读取表中...
1.2.1.9 ORACLE ROWID ....................................................................... 1.2.1.10 选择性 ................................................................................. 1.2.1.11 ...
oracle_SQL中 rowid 和rownum的使用
对一个大表进行UPDATE,DELETE,如果在一个SESSION里面运行SQL,很容易引发undo不够, 或者由于一些原因,导致回滚,这个是灾难