猪莫慌

2.2.3段(Segement)

  段是由一个或多个数据区构成,他不是存储空间的分配单位,而是一个独立的逻辑存储结构,用于存储表、索引或簇等占用空间的数据对象。Oracle也把这种占用空间的对象称为段,一个段只属于一个特定的数据对象,每当创建一个具有独立段的数据对象时,Oracle将为他创建一个段。

  段是为特定的数据对象(表、索引、回滚等)分配的一系列数据区。段内包含的数据区可以不连续,并且可以跨越多个文件,使用段的目的是用来保存特定的对象,一个Oracle数据库通常有以下4种类型的段。

  (1)数据段:数据段中保存的是表中的数据记录。在创建数据表时,Oracle系统将为表创建数据段。当表中的数据量增大时,数据段的大小自然也随之增大,数据段的增大过程是通过向其添加新的数据区来实现的,当创建一个表时,系统自动创建一个以该表的命名的数据段。

  (2)索引段:索引段中包含了用于提高系统性能的索引,一旦建立索引,系统自动创建一个以该索引的名字命名的段。

  (3)回滚段:回滚段中保存了回滚条目,Oracle将修改前的旧值保存在回滚条目中。利用这些信息,可以撤销未提交的操作,以便为数据库提供读入一致性和回滚未提交的事务,即用来回滚事务的数据空间。当一个事务开始处理时,系统为之分配回滚段,回滚段可以动态创建和撤销。Oracle11g系统有个默认的回滚段,其管理方式既可以是自动的,也可以是手动的。

  (4)临时段:当执行创建索引、查询等操作时,Oracle可能会使用一些临时存储空间,用于暂时性的保存解析过的查询语句以及在排序过程中产生的临时数据。Oracle系统将在专门用于存储临时数据的表空间中为操作分配临时段。

  在执行CREATE INDEX、SELECT ORDER BY、SELECT DISTINCT和SELECT GROUP BY等几种类型的SQL语句时,Oracle系统就会在临时表空间中为这些语句的操作分配一个临时段。

  在数据库管理过程中,若经常需要执行上面这类SQL语句,最好调整SORT_AREA_SIZE初始化参数来增大排序区,从而使排序尽量能够在内存中完成,以获得更好的执行效率,但同时这对数据库服务器的内存空间提出了更大的要求。

posted on 2020-11-02 17:00  猪莫慌  阅读(428)  评论(0编辑  收藏  举报

导航