oracle逻辑存储管理

ORACLE逻辑存储分为4个粒度:表空间,段,区,块。

1.块

     是粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块操作的,也就是说ORACLE从数据文件读取数据时,是读取多少个块,而不是多少行,每一个Block里可以包含多个row


2.区

     由一系列相邻的块组成,这也是ORACLE空间分配的基本单位,举例来说,当我们创建一个表Dave时,ORACLE会分配一个空间给这个表,随着不断的insert数据到Dave,原来的这个区容不下插入的数据时,ORACLE是以区为单位进行扩展的,也就是说再分配多少个区给Dave

,而不是多少个块


3.段

     由一系列的区组成,一般来说,当创建一个对象时(表,索引),就会分配一个段给这个对象,所以从某种意义上来说,段就是某种特定的数据,如CREATE TABLE Dave,这个段就是数据段,而CREATE INDEX ON Dave(NAME),ORACLE同样会分配一个段给这个索引,但这是一个索引段,查询段的信息可以通过数据字典:SELECT * FROM USER_SEGMENTS来获得


4.表空间

    包含段,区及块,表空间的数据物理上储存在其所在的数据文件中,一个数据库至少有一个表空间



===================================

     当我们创建一个表,即使我们没插入任何一行记录,ORACLE还是会给它分配8个块,当然这个跟建表语句的INITIAL参数及MINEXTENTS参数有关,如:

          STORAGE(

              INITIAL     64k

              MINEXTENTS     1

              MAXEXTENTS  UNLIMITED

           );

    也就是说,在这个对象创建以后,ORACLE至少给它分配一个区,初始大小为64K,一个标准块的大小是8k,刚好是8个块(Block)


你可能感兴趣的:(oracle)