关于rowid

本文深入探讨了SQL中rowid的定义、组成及其在数据库查询中的应用,通过实例解析rowid的各部分编码含义,帮助读者更好地理解和利用这一特性。

Rowid 表示一个表中每一行的唯一地址,是一串64进制的字符串,可以在查询中使用rowid伪列查看每一行的rowid,如图:

rowid采用64进制编码,其中:

  • A~Z  表示 0~25
  • a~z   表示 26~51
  • 0~9   表示 52~61
  • + 表示62
  • / 表示 63 

rowid共有18位,分为四个区域,其中:

  • 1~6   data_object_id(对应dba_objects中的data_object_id字段)
  • 7~9   相对数据文件id,也就是表空间内部的数据文件编号,每个表空间最多有1022个文件(v$datafile 中的 RFILE#字段)
  • 10~15  文件内 块号 block_id
  • 16~18  块内的 行号 row_id

分析rowidAAADpg AAE AAAAOs AAA

7~9 :AAE = 0*64*64+0*64+4 = 4  A代表0E代表4

10~15位:AAAAOs = 14*64+44 = 940 O代表14s代表44

16~18 位:AAA = 0

也就是这一行在4号文件,940个块,第0






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值