数据块(data block)是oracle数据存储的最小粒度,一个数据块对应与磁盘的数个字节的物理数据块空间(72kb+24kb)。
处于数据块之上的逻辑数据库空间是数据扩展(extent)。数据扩展是为存储数据而分配的一组连续的数据块。
位于数据扩展之上的逻辑数据库存储结构是段(segment)。段由一组数据扩展(extent)构成,这些数据扩展位于同一表空间(tablespace)中,用于存储各种逻辑数据结构。例如:每个表的数据都存储在其自身的数据段中,每个索引的数据都存储在其自身的索引段中。如果表或索引是分区存储的,则每个分区拥有自己的段。
oracle为段分配空间时以数据扩展为单位,当段内已有的数据扩展没有可用空间时,oracle为此段分配一个新的数据扩展。因为数据扩展是随需分配的,所以一个段内的数据扩展在磁盘上未必是连续的。
一个段以及属于它的所有数据扩展必须包含在同一表空间中,但在一个表空间内,属于同一个段的数据扩展可以分布在多个数据文件(datafile)上,即段可以跨文件存储,但是每个数据扩展只能包含于同一个数据文件中。
在用户分配一个新的数据扩展时,其中的数据块未必被同时分配,如果用户是为某个数据库对象分配数据扩展,那么数据块也同时被立即分配并加入可用块列表(free list)中,如果数据扩展并非专门为某个数据库对象分配,那么数据块只在高水位线(high water mark)移动时才被分配。高水位线是段中已用和未用空间的边界。
处于数据块之上的逻辑数据库空间是数据扩展(extent)。数据扩展是为存储数据而分配的一组连续的数据块。
位于数据扩展之上的逻辑数据库存储结构是段(segment)。段由一组数据扩展(extent)构成,这些数据扩展位于同一表空间(tablespace)中,用于存储各种逻辑数据结构。例如:每个表的数据都存储在其自身的数据段中,每个索引的数据都存储在其自身的索引段中。如果表或索引是分区存储的,则每个分区拥有自己的段。
oracle为段分配空间时以数据扩展为单位,当段内已有的数据扩展没有可用空间时,oracle为此段分配一个新的数据扩展。因为数据扩展是随需分配的,所以一个段内的数据扩展在磁盘上未必是连续的。
一个段以及属于它的所有数据扩展必须包含在同一表空间中,但在一个表空间内,属于同一个段的数据扩展可以分布在多个数据文件(datafile)上,即段可以跨文件存储,但是每个数据扩展只能包含于同一个数据文件中。
在用户分配一个新的数据扩展时,其中的数据块未必被同时分配,如果用户是为某个数据库对象分配数据扩展,那么数据块也同时被立即分配并加入可用块列表(free list)中,如果数据扩展并非专门为某个数据库对象分配,那么数据块只在高水位线(high water mark)移动时才被分配。高水位线是段中已用和未用空间的边界。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10356975/viewspace-680340/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10356975/viewspace-680340/