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)
本文详细介绍了Oracle数据库中ROWID的概念及其组成,ROWID用于唯一标识数据库中的每一行记录。文章解释了ROWID如何由数据对象编号、数据文件编号、数据块编号及数据块中行的编号构成,并给出了ROWID内部存储的具体规则。
5396

被折叠的 条评论
为什么被折叠?



