Chinaunix首页 | 论坛 | 博客
  • 博客访问: 51264
  • 博文数量: 21
  • 博客积分: 550
  • 博客等级: 中士
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-28 20:50
文章分类

全部博文(21)

文章存档

2011年(21)

我的朋友

分类: IT业界

2011-11-27 21:36:49

2.盘区
 
  盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。盘区是Oracle存储分配的最小单位。
  在Oracle中创建带有实际存储结构的数据库对象时,Oracle将为对象分配相应的盘区,以构成一个段来提供存储空间。当段中已经分配的盘区写满后,Oracle将为段分配一个新的盘区,以便容纳更多的数据库。
 
3.段
 
  段是由一系列盘区组成,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。例如,在Oracle中创建表时会为它分配若干个盘区以组成表的数据段。
 
  在Oracle中,不同类型的数据库对象拥有不同类型的段。根据段中存放的数据库对象类型,可以将段分为几种类型:数据段、索引段、临时段、回退段和LOB段。
 
   (1)数据段
        在数据段中保存的是表的记录。用户创建表的同时,Oracle系统将为表创建数据段。Oracle中所有
未分区的表都使用一个段来保存数据。
        当表中的数据增加时,数据段也将变大,数据段的增大过程是通过添加新盘区实现的。在表空间中
创建了多少个表,相应地在该表空间就有同量的数据段,并且数据段的名称与它对应的表名相同。
   (2)索引段
        在索引段中保存的是索引中的索引信息。在使用Create Index语句创建索引或者在定义约束时自动创建索引的同时,Oracle将为索引创建它的索引段。
 
   (3)临时段
        当用户执行查询等操作时,Oracle可能会需要使用一些临时存储空间,用于临时保存解析过的查询语句以及在排序过程中产生的临时数据。Oracle会自动在专门用于存储临时数据的表空间中为操作分配临时段。
        在执行如下几种类型的SQL语句时,Oracle都会在临时表空间中为语句操作分配一个临时段。
        Create Index.
        Select ...Order by.
        select ...Distinct.
        Select ...Group by.
        Select ...Union .
       
如果需要经常执行上面类型的语句,最好调整SORT_AREA_SIZE初始化参数来增大排序区,使排序操作尽量在内存中完成,以获得更好的性能。
当操作执行完毕后,为该操作分配的临时段将被释放。当带有排序的操作十分频繁时,临时段的分配和释放也将十分频繁。因此,为了提高性能,Oracle创建了一个独立的临时表空间,并在其中存放临时段,这样可以避免与其他表空间争用存储空间。
 
 (4)回退段
 
     回退段用于保存回退的条目,Oracle将修改前的值保存在回退条目中。利用这些信息,可以撤销未提交的操作。Oracle可以利用回退段来维护数据库的读写一致性,并能够从崩溃实例中进行恢复。
 
    在Oracle 11g中,回退也被称为撤销管理,并且不需要为数据库创建多个回退段,也不需要管理回退段,只需要创建一个撤销表空间。对回退段的管理由Orcale自动完成,这就是自动撤销管理。
 
   (5)LOB段
 
     如果表中含有如CLOB和BLOB等大型对象类型数据时,系统将创建LOB段以存储相应的大型对象数据。LOB段独立于表中其他数据的数据段。
      
   
阅读(1108) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~