ORACLE的逻辑结构是由一个或多个表空间组成,一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(tablespace)。一个表空间可将相关的逻辑结构组合在一起。
一个表空间由一组分类段组成。
一个段由一组范围组成。
一个范围由一批数据库块组成。
一个数据库块对应一个或多个物理块。
每一个ORACLE数据库包含有一个名为SYSTEM的表空间,在数据库建立时自动建立。在该表空间中包含有整个数据库的系统信息数据,最小的数据库可只需要SYSTEM表空间。表空间利用增加数据文件可扩大表空间,表空间的大小为组成该表空间的数据文件的大小的和。ORACLE数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间相联系。当为一表空间建立一数据文件时,ORACLE建立该文件,分配指定的磁盘空间容量。在数据文件初始建立后,所分配的磁盘不包含有任何数据。
一个模式(schema)为模式对象(schema object)的一个集合,每一个数据库用户对应一个模式。模式对象为直接引用数据库数据的逻辑结构,模式对象包含如表、视图、索引、同义词等结构。模式对象是逻辑数据存储结构,每一种模式对象在磁盘上没有一个相应文件存储其信息。一个模式对象逻辑地存储在数据库的一个表空间中,每一个对象的数据物理地包含在表空间的一个或多个数据文件中。例如:表、索引等模式对象,在指定表空间的数据文件上为该对象分配多少空间。图1-5说明模式对象、表空间和数据文件之间的关系。
模式与表空间之间的关系为:一个表空间可包含不同模式的对象,而一个模式中的对象可包含在不同的表空间中。
1. 数据库块
数据库块(database block)是ORACLE逻辑分配空间的最底层,又称逻辑块、页或ORACLE块。
数据库块是数据库使用和分配空间的最小单元,也可以说是使用的最小I/O单元,一个数据块与磁盘上指定的物理空间大小相一致,一个数据库块对应一个或多个物理块,块的大小由参数db_block_size确定。
PCTFREE和PCTUSED是开发人员用来控制数据块中可用插入和更新数据的空闲空间大小的参数。
PCTFREE:设置数据块中保持空闲的百分比。
PCTUSED:当数据块空闲空间达到PCTFREE时,此块不允许插入数据,只能修改或删除块中的行,更新时可能使数据块空闲空间变大,已用数据空间变小,当已用空间低于PCTUSED时,则可以重新插入数据。
PCTFREE及PCTUSED的选择:
经常做查询(select)的表,应使PCTFREE小些,尽量减少存储空间浪费。
经常做插入(insert)的表,应使PCTUSED大一些。
经常做更新(update)的表,应使PCTFREE大一些,给更新留出更大的空间,减少行移动。
说明:
这两个参数只能在创建、修改表和聚簇(数据段)时指定。另外,在创建、修改索引(索引段)时只能指定PCTFREE参数。
经常做插入的表设置举例:
create table COMMINFOR
( SERIALNUMBER VARCHAR2(20) not null,
ENTERHISTIME DATE not null,
ACCEPTBEGINTIME DATE null ,
ACCEPTDURATION NUMBER(10) null ,
ACCEPTERNO VARCHAR2(4) null ,
CALLINGPHONENO VARCHAR2(20) null ,
ACCEPTID NUMBER(10) null ,)
以上就是ORACLE数据库中的逻辑结构, 更多相关文章请关注PHP中文网(www.php.cn)!