数据块(data block) 是oracle最小的逻辑部件,数据块大小合适的选择可以提高性能;
区段(extent)由几个相邻的数据块组合在一起;
段(segment)有一组区段构成;
表空间(tablespace)是包含物理数据文件的逻辑实体,存放数据库的所有可用数据,因此表空间的尺寸也是包含数据的数据文件尺寸的总和,是oracle 主要的逻辑存储结构。
tablespace由segment, segment由extent,extent有连续在一起的db block组成。
data block的大小是操作系统的data block的整数倍,ORACLE默认是8K,还有4K,16K,32k几种。
在参数文件里的参数为DB_BLOCK_SIZE,查看方法
show parameter db_block_size
查看所有的参数列表
Show parameters;
9i显示结果如下
SQL> show parameter db_block_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
所以默认是8K=1024Byte*8=8192Byte
可以通过PCTFREE,PCTUSER,FREELIST进行管理,从9i开始ORACLE可以自动管理。
extent是几个逻辑上相邻的data block组合在一块。
segment通常一张表是一个segment,一个INDEX,BLOB,CLOB各自占用一个segment。
tablespace是数据库中数据逻辑存储的地方,一个tablespace可以包含多个数据文件。上面三个的配置如果和tablespace的配置有冲突,以tablespace为准。
注意
通过 select blocks from dba_tables where table_name='ABC' and wner='SYS';
结果是0
Insert into abc(1,’aaa’);
在查一次
结果为 1
Rollback;(回滚的时候)
在查 select * from abc where id=1 没记录
select blocks from dba_tables where table_name='ABC' and wner='SYS';
结果仍然为 1
说明回滚时并不回滚快的物理化 而是回滚的数据逻辑