您的位置:首页 > 数据库 > Oracle

oracle逻辑存储管理

2015-07-04 11:56 676 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: