作为影响数据库性能的一个因素,数据库表空间碎片,应当引起DBA的重视,及时发现并整理碎片是DBA基本维护内容,以提高数据库性能。
Oracle数据库表空间、段、区、块简述
表空间(tablesapce)
表空间是数据库中的基本逻辑结构,一组数据文件的集合。一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。
段(segment)
段是对象在数据库中占用的空间,虽然段和数据库对象是一一对应的,但段是从数据库存储的角度来看的。一个段只能属于一个表空间,一个表空间可以有多个段。
表空间和数据文件是物理存储上的一对多的关系,表空间和段是逻辑存储上的一对多的关系,段不直接和数据文件发生关系。一个段可以属于多个数据文件(段可以跨数据文件)。从dba_segments视图中,可以比较清楚看清数据段的结构。
常用的段可以分为以下四种:
数据段(Data Segment)
索引段(Index Segment)
回滚段(Rollback Segment)
临时段(Temporary Segment)
区间(Extent)
在一个段中可以存在多个区间,区间是为数据一次性预留的一个较大的存储空间,直到那个区间被用满,数据库会继续申请一个新的预留存储空间,即新的区间,一直到段的最大区间数(Max Extent)或没有可用的磁盘空间可以申请。区不可以跨数据文件。视图dba_extents(或者all_extents、user_extents)查看分区结构和存储构成。
数据块(Block)
Oracle最基本的存储单位,Oracle的操作都是以块为基本单位,一个区间可以包