欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle表空间基础讲解

程序员文章站 2022-06-23 16:18:51
一、表空间基础 表空间是oracle中用来管理数据存储的一种逻辑结构。每个应用程序的表和索引都作为一个段存储,而这些段都存储在作为表空间成分的数据文件中。表空间是由一个或多个数据文件组成的。 表空间...

一、表空间基础

表空间是oracle中用来管理数据存储的一种逻辑结构。每个应用程序的表和索引都作为一个段存储,而这些段都存储在作为表空间成分的数据文件中。表空间是由一个或多个数据文件组成的。

表空间中的数据存储结构又可以细分为段、区和数据块:

数据块(data block):oracle数据库的存储基础,由磁盘上的字节组成,初始化参数db_block_size指定了数据块的大小,一般介于2~32kb之间,默认为8kb。

区(extent):由特定数目的相邻的数据块组成,是oracle中空间分配的单元。

段(segment):一组区构成段,用来存储各种逻辑对象(比如表、索引或其他对象),每个表的数据存储在自身的数据段中,索引存储在自己的索引段中。

一个最简单的oracle数据库必须有system和sysaux表空间。system表空间是创建新数据库时创建的第一个永久表空间,它含有重要的帮助数据库运行的数据字典信息,sysaux表空间是system表空间的一个辅助表空间,存储各种oracle应用的元数据。

二、表空间分类

永久表空间、临时表空间。

表空间:system换人sysaux表空间。system表空间是系统核心表空间,存放数据字典表、控制文件和数据文件的信息等。该表空间仅能被sys、system等用户使用,不能被重命名和删除。

临时表空间:当执行数据排序order by、汇总group by或创建和重建索引时,会使用临时表空间来存放数据,服务器进程会先在进程全局区pga中存放数据,当pga空间不够时会建立临时段,这些临时数据存放在临时表空间中。若没有指定临时表空间,默认会将system表空间作为临时表空间,会导致system表空间产生大量存储碎片,不利于数据库的稳定性。

undo表空间(撤销表空间、重做表空间):实现撤销管理,比如当回滚一个事务时从撤销表空间拿旧数据进行恢复。可以创建多个撤销表空间,但同一时刻只能激活一个撤销表空间,在undo_tablespace中指定。

大文件表空间:由一个可以包含4g个数据块的数据文件组成,主要用在超大型数据库的场合来减少数据文件个数。

用户表空间(数据表空间):存放用户创建的对象和私有信息。