segment,extent,block

长平狐 发布于 2013/09/17 15:12
阅读 257
收藏 0

1.segment   段的不同类型:

分区表 tablepartition

表 table

索引       index

簇    cluster

索引分区indexpartition

索引表    index-organized table

临时段    temporary segment

还原段 undosegment

大对象段lobsegment

嵌套表    nested table

自举段bootstrapsegment

存储子句的优先级

ORACLE数据库默认的存储参数》表空间定义的存储参数》段定义的存储参数

 2.表和段的对应关系

表是段,但段不一定是表,段还有index段、undo段、分区之类的
具体如下:表是逻辑对象;段是物理存储对象
它们之间的关系:
① 段的存在,并不是依赖于表的。建立一些其它逻辑对象也会会创建段,如索引、物化视图
② 一张普通表(堆组织表)对应一个段
③ 表的建立,并不意味着段的创建,如临时表(Global Temporary Table)
④ 一张表也可以创建多个段,如分区表(Partition Table)
⑤ 多个表也可以共存于一个段,如簇表(Cluster Table)

 

3.区段 extent

区段是表空间中由某一个段所使用的一块空间,是一组连续的ORACLE数据块。

引入区段可以减少磁盘分配次数,提高系统效率。

当一个段被创建created时,被扩展extended时,被改变时altered,ORACLE会分配一个区段。

当一个段被删除dropped时,被改变时,被截断时truncated,ORACLE会回收一个区段。

##############################################################################

4.数据库块database block

ORACLE最小的存储单元数据库块,也称为ORACLE数据块。

在表空间创建时设置DB_BLOCK_SIZE为默认数据块大小。不建议使用非标准块。

数据库可使用一个标准块,也可以使用最多4种非标准块,非标准块大小为2的次方2-32KB之间

 

数据块包括:

数据块头 存有数据块的地址,表目录,行目录,事务槽transaction slot,头部从上往下增长。

空闲区位于数据块中部,删除修改操作会导致空闲区碎片化。

数据区装 的是数据行,位于数据块的底部,从下往上增长。

建议使用ORACLE的自动的段空间管理,本地管理的表空间都可以使用。

查看哪些表是系统自动管理。

SQL> selecttablespace_name,block_size,status,contents,segment_space_management from dba_tablespaces;

TABLESPACE_NAME                BLOCK_SIZE STATUS    CONTENTS SEGMEN

------------------------------ ------------------- --------- ------

SYSTEM                               8192 ONLINE    PERMANENT MANUAL

SYSAUX                               8192 ONLINE    PERMANENT AUTO


原文链接:http://blog.csdn.net/q947817003/article/details/11370587
加载中
返回顶部
顶部