作者:雨竹清风
一个数据库中的每一行数据都有唯一的rowid。
它的特点是:
1.它可以标识唯一的一行数据。
2.它并不是显示的存储为一列的值。
3.是用于定位行的,但是并未给出这一行的物理地址。
4.提供访问一行的最快的机制。
Oracle提供了两种rowid,一种是限制性的rowid,一种是非限制性的rowid。
扩展性的rowid的格式如下图:
数据对象 | 相对文件号 | 块号 | 行号 |
使用rowid可以寻找到每一行。每一个段只能存放在一个表空间中,这样就可以通过使用数据对象号来寻找到所属的表空间。之后使用的表空间中的相对文件号来确定文件,再利用块号就可以确定所包含该行的块,通过行号就可以确定数据行的目录项,使用目录项就可以定位数据行的起始地址。
而限制性的rowid的格式如下:
块号 | 行号 | 文件号 |
与扩展性的rowid相对比可以发现,限制性的rowid没有数据对象号。