Oracle数据库的段是Oracle数据库结构中的重要部分,下面就为您详细介绍Oracle数据库的段,希望对您能够有所帮助。
Oracle数据库的段
Oracle数据库的段是对象在数据库中占用的空间,虽然Oracle数据库的段和数据库对象是一一对应的,但段是从数据库存储的角度来看的。一个段只能属于一个表空间,当然一个表空间可以有多个段。
表空间和数据文件是物理存储上的一对多的关系,表空间和段是逻辑存储上的一对多的关系,段不直接和数据文件发生关系。一个段可以属于多个数据文件,关于段可以指定扩展到哪个数据文件上面。
Oracle数据库的段可以分为四类:数据段、索引段、回退段、临时段。
1.数据段
数据段是用于存储数据的段,他存储在数据表空间中。每一个表都有一个数据段(聚簇除外),表的数据存储在数据段中,默认情况下段名与表名相同。以下语句查询段的信息:
SQL>SELECT SEGMENTNAME,TABLESPACE,NAME,BYTES,BLOCKS FROM USER_EXTENTS;
2.索引段
索引段用于存储索引,以下语句查询索引信息:
SQL>SELECT * FROM ALL_INDEXS
SQL>SELECT * FROM USER_INDEXS
3.回退段
回退段用于存储用户数据修改之前的值,因而可以在特定条件下回退数据。回退段与事务是一对多的关系,一个事务只能使用一个回退段,而一个回退段可存放一个或多个事务的回退数据。
在oracle8i及之前的版本中,管理回退段是项很复杂的工作,管理员需要根据每个事务的大小和事务数量来确定、计算回退段的数量及存储参数,在oracle9i之后,oracle增加了undo表空间,由系统自动管理它。从此不再需要考虑对回退段的管理。参数undo_management决定数据库使用的是回退段还是undo表空间,其值为auto表示使用undo表空间自动管理,manual表示手动管理回退段。
4.临时段
临时段用于order by语句的排序以及一些汇总。
【编辑推荐】