ORACLE数据库块的详细存储结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLE数据库块的详细存储结构

数据库----存储数据的容器

数据库的主要功能是保存数据。

数据库的存储结构---数据库存储数据的方式

oracle数据库的存储结构:

逻辑存储结构:oracle内部的组织和管理数据的方式

物理存储结构:oracle外部(操作系统)组织和管理数据的方式

oracle对逻辑存储结构和物理存储结构的管理是分别进行的。

(一)逻辑存储结构:

oracle在逻辑上将保存的数据划分为一个个小单元来进行存储和维护,更高一级的逻辑存储结构都是由这些基本的小单元组成的。

逻辑结构类型:从小到大块-->区-->段-->表空间

(1). 块:Oracle用来管理存储空间的最基本单元,也是最小的逻辑存储结构。Oracle数据库在进行输入输出时,都是以块为单位进行逻辑读写操作的。

块---->操作系统快的整数倍(1、2、4等)

Oracle块的大小在数据库创建的时候决定的,以后不能修改。

区:比块高一级的逻辑存储结构由连续的快组成

oracle在进行存储空间的分配和回收是以区为基本单位的

段:多个区组成这些区可以是连续的,也可以是不连续的。当用户在数据库中创建各种具有实际存储结构的对象时(保存有数据的对象),比如表、索引等,Oracle将为这些对象创建“段”。一般一个对象只拥有一个段

表空间:最高级的逻辑存储结构每个数据库都是由一个或多个表空间组成,在创建数据库时会自动创建一个默认的SYSTEM表空间。

通过使用表空间---Oracle将所有相关的逻辑结构和对象组合在一起。

逻辑结构关系:

块--->一张张白纸区--->白纸组成的本子段--->多个本子放到一个文件袋中

表空间--->文件柜(存放多个文件袋)

(2)☆. 块的管理:块的可用存储空间进行管理

块结构:

块的头部信息区

快头部:包含块的一般属性信息如块的物理地址、块所属的段的类型

表目录:如果快中存储的数据是表数据则在表目录中保存这个表的相关信息行目录:行记录的相关信息如ROWID

块的存储区:

空闲空间行空间

块的存储空间管理:

PCTFREE参数:指定块中必须保留的最小空闲空间比例。当块中的空闲存储空间减少到PCTFREE所设置的比例后,Oracle将块标记为不可用状态

PCTUSED参数:制定一个百分比,当块中已经使用的存储空间降低到这个百分比只下时,这个块才被重新标记为可用状态。

这两个参数适用于表空间和段。

☆区的管理:oracle利用区进行存储空间分配的工作机制

在创建具有独立段结构的数据库对象时,比如创建表时,Oracle将为表创建一个数据段,并为数据段分配一个‘初始区’。

STORAGE:后续区的分配方式

也可以在创建表空间的时候--为表空间设置一个默认的STORAGE:DEFAULT STORAGE

本地管理方式表空间自动位图

字典管理方式表空间手动可用快列表

用户能够通过执行下面的命令来回收表、索引等对象中未使用的区:

alter table table_name deallocate unused;

☆段的管理:独立的逻辑存储结构

一个段只属于一个特定的数据库对象(表、索引等)。每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。在创建段时,可以为它指定PCTFREE、PCTUSED等参数来控制其中的快的存储空间管理方式,也可以为它指定INITIAL、NEXT、PCTINCREASE等存储参数,以指定其中区的分配方式。如果没有为段指定这些参数,段将自动继承表空间的相应参数。

(3).不同类型的数据库对象拥有不同类型的段:

段的类型:

数据段:保存表中的记录

索引段:索引中的索引条目

临时段:在执行查询等操作时,Oracle可能会需要使用到一些临时存储空间,用于临时保存解析过的查询语句以及在排序过程中产生的临时数据。

在执行下面几种类型的算SQl语句时,Oracle都会需要用到临时段:

create index

select .....order by

select distinct

select ......group by

select ......union

.......

如果经常需要执行上面类型的语句,建议调整SORT_AREA_SIZE初始化参数类增大排序区,使排序操作尽量能在内存中完成,提高性能

回退段:

☆表空间:oracle数据库是由一个或多个表空间组成SYSTEM表空间

特殊类型的表空间:

除了用于存储用户数据的普通表空间外,在一个数据库中还可能会存在三种特殊类型的表空间:SYSTEM表空间、撤销表空间、临时表空间

SYSTEM表空间:一个默认的表空间

SYSTEM表空间中保存的信息:

* 数据库数据字典(数据字典是一组保存数据库自身信息的内部系统表和视图,及用于Oracle内部使用的其他一些对象);

* 存储所有PL/SQL程序的源代码和解析代码,包括存储过程和函数、包、数据库触发器等。在需要保存大量的PL/SQL程序的数据库中,应当设置足够大的SYSTEM表空间

* 存储数据库对象(表、视图、序列)的定义。

撤销表空间:自动撤销管理方式下撤销段

每个实例最多只能使用一个撤销表空间

临时表空间:存储SQL执行过程中产生的临时数据

表空间的存储管理方式:各种存储参数的设置实际上都是针对段的,但是Oracle 仍然建议尽量在表空间级对存储参数进行设置。

(二). oracle物理存储结构

从整体上看,Oracle的数据逻辑上存储在表空间中,而物理上存储在表空间所对应的数据文件中。

Oracle数据库逻辑上由一个或多个表空间组成,每个表空间在物理上由一个或多个数据文件组成。

数据库物理存储结构一共包括如下三种类型的物理文件:

相关文档
最新文档