Oracle中一行数据是由一个或多个row piece组成的。如果一整行数据可以被放入一个单独的data block中,则这一整行数据就是一个row piece。如果由于一行数据太长,需要将一行数据放入多个data block中,则将这一整行数据拆分成多个row piece,一个row piece放入一个data block。一个data block通常也只会存储一行数据的一个row piece。
每一行数据在data block header的row directory中都有一个slot,记录了每行数据的开始位置。
一个row piece则分为row header和column data两部分。
row header中包含:1,row piece中存储的columns信息。2,存储在其它data block中的row piece信息。
column data中则存储了真实的数据。
rowid:Oracle Database uses a rowid to uniquely identify a row. Internally, the rowid is a structure that holds information that the database needs to access a row. 因此当一行数据的物理存储位置发生变化的时候rowid也会发生变化。
Oracle数据库中,一行数据可能由一个或多个rowpiece组成,取决于数据的长度。每个rowpiece包含rowheader和columndata,前者存储列信息和跨block的rowpiece指针,后者存储实际数据。rowdirectory在datablockheader中记录行数据的位置。rowid是唯一标识行的关键结构,会随数据位置变化而变化。
1189






