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个数据块的数据文件组成,主要用在超大型数据库的场合来减少数据文件个数。
用户表空间(数据表空间):存放用户创建的对象和私有信息。
上一篇: Oracle中Over函数的使用介绍
下一篇: mysql支持的数值型介绍