oracle数据存储结构

数据块(data block) oracle最小的逻辑部件,数据块大小合适的选择可以提高性能;
区段(extent)由几个相邻的数据块组合在一起;

段(segment)有一组区段构成;

表空间(tablespace)是包含物理数据文件的逻辑实体,存放数据库的所有可用数据,因此表空间的尺寸也是包含数据的数据文件尺寸的总和,是oracle 主要的逻辑存储结构。

 

tablespacesegment, segmentextentextent有连续在一起的db block组成。

 

data block的大小是操作系统的data block的整数倍,ORACLE默认是8K,还有4K16K32k几种。


在参数文件里的参数为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,一个INDEXBLOBCLOB各自占用一个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

说明回滚时并不回滚快的物理化 而是回滚的数据逻辑

原文地址:https://www.cnblogs.com/liaomin416100569/p/9332153.html