Welcome 微信登录

首页 / 数据库 / MySQL / Oracle ROWID详解

1.ROWID定义

ROWID:数据库中行的全局唯一地址对于数据中的每一行,rowid伪列返回行的地址。rowid值主要包含以下信息:
  • 对象的数据对象编号
  • 该行所在的数据文件中的数据块
  • 该行中数据块的位置(第一行是0)
  • 数据行所在的数据文件(第一个文件是1)。该文件编号是相对于表空间。
通常来说,一个rowid值唯一标识数据中的一行。然而,存储在同一聚簇中不同的表可以有相同的rowid。 Oracle rowid http://www.linuxidc.com/Linux/2013-03/80755.htmOracle入门基础教程:rowid详解 http://www.linuxidc.com/Linux/2012-10/73265.htmOracle 中ROWNUM用法总结,ROWNUM 与 rowid 区别 http://www.linuxidc.com/Linux/2012-07/66121.htmrowid走索引之嫌疑犯抓获 http://www.linuxidc.com/Linux/2012-06/62302.htmOracle利用rownum和rowid分页 http://www.linuxidc.com/Linux/2012-04/58301.htm

2.扩展ROWID

从Oracle 8i开始使用扩展rowid标识行物理地址扩展rowid使用base64编码行的物理地址,编码字符包含A-Z, a-z, 0-9, +,/。扩展rowid由四部分组成:OOOOOOOFFFBBBBBBRRR:其中:
  • OOOOOO:数据对象编号(6位显示)
  • FFF:相关数据文件编号(3位显示)
  • BBBBBB:数据块编号(6位显示)
  • RRR:数据块中行编号(3位显示)
  

3.受限ROWID

为了兼容Oracle8i以前的应用使用受限rowid标识行物理地址受限rowid使用二进制标识行的物理地址,当使用SQL*Plus查询时,二进制被转换为VARCHAR2/十六进制显示。受限rowid有三部分组成:BBBBBB.RRRR.FFFF(block.row.file):
  • BBBBBB:数据库块编号(6位显示)
  • RRRR:数据块找中行编号(4位显示)
  • FFFF:数据文件编号(4位显示)
  

4.ROWID内部存储

对于内部ROWID存储结构,扩展ROWID在大多数平台上采用10个字节存储,受限ROWID6个字节存储。具体规则如下:
  • 数据对象编号-----32bit
  • 数据文件编号------10bit
  • 数据块编号--------22bit
  • 数据块中行编号----16bit
Oracle 8i以前,rowid占用6个字节空间,分别是22bit的block#,16bit的row#,10bit的file#。从Oracle 8i开始,rowid占用10个字节空间,分别是32bit的object#,10bit的rfile#,22bit的block#,16bit的row#。新增了32bit的object#。受限rowid的file#t基于整个数据库,扩展rowid的rfile#基于表空间。 

5.base 64编码

索引对应字符索引对应字符索引对应字符索引对应字符
0A17R34i51z
1B18S35l520
2C19T36k531
3D20U37l542
4E21V38m553
5F22W39n564
6G23X40o575
7H24Y41p586
8I25Z42q597
9J26a43r608
10K27b44s619
11L28c45t62+
12M29d46u63/
13N30e47v  
14O31f48w  
15P32g49x  
16Q33h50y  
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-05/102089p2.htm
  • 1
  • 2
  • 下一页
Oracle 10g AND Oracle 11g手工建库案例之--Oracle 10gOracle 11g r2环境imp导入报IMP-00051与IMP-00008错误相关资讯      rowid  Oracle ROWID 
  • 使用rowid和rownum获取记录时要注  (10/20/2014 18:51:40)
  • 【Oracle】DBMS_ROWID定位数据行物  (03/12/2014 19:24:21)
  • Oracle ROWID  (03/12/2013 09:25:24)
  • Oracle 10g 中的ROWID详解  (06/16/2014 21:36:30)
  • 详解Oracle rowid之来龙去脉  (11/16/2013 16:53:57)
  • Oracle入门基础教程:rowid详解  (10/30/2012 18:38:30)
本文评论 查看全部评论 (0)
表情: 姓名: 字数