日期:2014-05-17  浏览次数:20919 次

oracle 中 tablespace ,segment,extent,block 关系是什么样的
如题

------解决方案--------------------
数据块(data block) 是oracle最小的逻辑部件,数据块大小合适的选择可以提高性能;
区段(extent)由几个相邻的数据块组合在一起;
段(segment)有一组区段构成;
表空间(tablespace)是包含物理数据文件的逻辑实体,存放数据库的所有可用数据,因此表空间的尺寸也是包含数据的数据文件尺寸的总和,是oracle 主要的逻辑存储结构。
------解决方案--------------------
这里的这些对象都是oracle里的逻辑存储对象,是oracle自己内部定义的用来存储数据的一些结构,简单的说,
就是
tablespace由segment, segment由extent,extent有连续在一起的db block组成。
------解决方案--------------------
基本上是楼上写的,不过我再补充点。
data block的大小是操作系统的data block的整数倍,ORACLE默认是8K,还有4K,16K,32k几种。
在参数文件里的参数为DB_nK_BLOCK_SIZE,可以通过PCTFREE,PCTUSER,FREELIST进行管理,从9i开始ORACLE可以自动管理。
extent是几个逻辑上相邻的data block组合在一块。
segment通常一张表是一个segment,一个INDEX,BLOB,CLOB各自占用一个segment。
tablespace是数据库中数据逻辑存储的地方,一个tablespace可以包含多个数据文件。上面三个的配置如果和tablespace的配置有冲突,以tablespace为准。

------解决方案--------------------
建议楼主看看Oracle的解释,全面详细
http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/toc.htm