rowid:数据库中行的全局唯一地址,对于数据中的第一行,
rowid伪列返回行的地址。
rowid值主要包含以下信息:
1.对象人数据对象编号
2.该行所在的数据文件中的数据块
3.该行中数据块的问位置
4.数据行所在的数据文件
oooooo:数据对象编号(6位表示)
fff:相关数据文件编号(3位表示)
bbbbbb:数据块编号(6位表示)
rrr:数据块中行的编号(3位表示)
rowid内部存储,扩展rowid在大多数平台上采用10个字节存储
规则如下:
数据对象编号------32bit
数据文件编号------10bit
数据块编号--------22bit
数据块中行编号----16bit
因为 rowid 用 22 位来表示 block 号,那这22位最多只能代表
2^22-1个数据块。
则oracle数据文件大小限制公式:
oracle maximum file size = db_block_size *( 2^22-1)
则当数据块大小为8k时:
oracle maximum file size = 8 * (2^22-1)K= 2^25K = 32G
(1G=1024M=1024*1024K=2^20K)