3.区间
区间是下一个级别的数据库逻辑分组。一个区间由一个或多个数据库块组成。扩大数据库对象时,为对象添加的空间作为区间进行分配。Oracle在数据文件级别管理区间。
4.段
下一个逻辑分组级别是段。段是一组区间,这些区间形成Oracle视为一个单元的数据库对象,如表或索引。因此,段通常是数据库最终用户将要处理的最小存储单元。Oracle数据库中的4种段类型是:数据段、索引段、临时段和撤消段。
数据库中的每个表保存在单个数据段中,一个数据段由一个或多个区间组成;对于分区表或集群表,Oracle会为表分配多个段。数据段包括LOB(large object,大对象)段,此段存储表段中的LOB定位器列引用的LOB数据(如果未将LOB以内联方式存储在表中)。
每个索引存储在自己的索引段中。与分区表一样,分区索引的每个分区存储在专门的段中。这种类别包括LOB索引段。表的非L.OB列、表的L,OB列和L,OB的相关索引均可以保存在不同的表空间(不同的段)中以提高性能。
如果用户的SQL语句需要磁盘空间来完成操作,例如内存中容纳不下的排序操作,Oracle会分配临时段。仅在执行SQL语句期间存在临时段。
从Oracle 10g开始,只有SYSTEM表空间中存在手动回滚段,但DBA通常无需维护SYSTEM回滚段。在前一Oracle版本中,会创建回滚段,以便在回滚事务时保存数据库DMI.操作的旧值,并维护“旧”映像数据,以便为其他访问此表的用户提供表数据的读一致性视图。在恢复数据库期间,为了回滚在数据库实例崩溃或异常终止时处于活动状态的未提交事务,也会使用回滚段。
在Oracle 10g中,自动撤消管理处理撤消表空间中的回滚段的自动分配和管理。在撤消表空间中,撤消段的结构与回滚段类似,只是这些段的管理细节由Oracle控制,而非由:DBA管理(这样做效率通常不高)。从Oracle9i开始使用自动撤消管理,但在Oracle 10g中仍然可以使用手动管理的回滚段。但是,从Oracle 10g开始不赞成使用此手动功能,在未来版本中,不再使用此功能。在Oracle 11g中,会默认启用自动撤消管理;另外,提供了PL,/SQL,(ProceduralLanguage/Structured Query Language,过程语言/结构化查询语言)过程来帮助调整UNDO表空间的大小。
展开