所谓本地化管理,就是指Oracle不再利用数据字典的表来记录Oracle表空间里面的区的使用状况,而是在每个表空间的数据文件的头部加入了一个记录块,在其中记录每个区的使用状况。每当一个区被使用,或者被释放以供重新使用时,Oracle都会更新数据文件头部的这个记录,反映这个变化。 
数据字典管理表空间是指在将表空间的组织结构和空间数据集的部分特征,在数据字典表中为查询过程中的数据集的定位和图内实体和属性的查询提供支持

解决方案 »

  1.   

    Oracle8I新特性:地化管理的表空间  
      在Oracle8I以前,表空间的使用状况都是通过数据字典来完成的,称为Dictionary-Managed Tablespace. 在Oracle8I推出以前,这一直都是唯一的表空间管理方式。自从Oracle8I以后,Oracle又增加了一种新的表空间管理方式:Locally Managed Tablespace(本地化管理的表空间)。
      在传统的数据字典管理的表空间里,Oracle在数据字典的表里面记录了每个表空间的每个区的使用状况:每当一个区被使用或被释放时,Oracle都在数据字典里面更新相应的信息,并产生相应的redo 信息。在Oracle8I里,这仍然是默认的表空间管理方式。
      在Oracle8I的版本中,Oracle推出了一种全新的表空间管理方式:本地化管理的表空间。所谓本地化管理,就是指Oracle不再利用数据字典的表来记录Oracle表空间里面的区的使用状况,而是在每个表空间的数据文件的头部加入了一个记录块,在其中记录每个区的使用状况。每当一个区被使用,或者被释放以供重新使用时,Oracle都会更新数据文件头部的这个记录,反映这个变化。
      本地化管理的表空间的创建过程:
       语法:CREATE TABLESPACE 表空间名字
              DATAFILE '数据文件详细信息'
              [EXTENT MANAGEMENT { DICTIONARY | LOCAL
              {AUTOALLOCATE | UNIFORM [SIZE INTETER [K|M] ] } } ] 
      解释: 关键字EXTENT MANAGEMENT LOCAL 指定这是一个本地化管理的表空间。对于系统表空间,只能在创建数据库的时候指定EXTENT MANGEMENT LOCAL,因为它是数据库创建时建立的第一个表空间。
      若为DICTIONARY,则表明这是一个传统的数据字典管理的表空间,这是个默认选项。当选择了LOCAL关键字,即表明这是这是一个本地化管理的表空间后,还可以继续选择更细的管理方式:是AUTOALLOCATE 还是 UNIFORM.。若为AUTOALLOCATE,则表明让Oracle来决定区块的使用办法;若选择了UNIFORM,则还可以详细指定每个区块的大小,若不加指定,则为每个区使用1M大小。 
      是本地化管理的表空间还是创建数据字典管理的表空间只能在创建表空间的时候指定。在表空间已经创建以后,则不能再把本地化管理的表空间和数据字典管理的表空间再相互转换。在创建临时表空间时,也可以在CREATE TEMPORARY TABLESPACE 中指定EXTENT MANAGEMENT LOCAL来指定这是一个本地化管理的表空间。   Oracle之所以推出了这种新的表空间管理方法,相必有他的过人之处,让我们来看一下这种表空间组织方法的优点:
      1. 本地化管理的表空间避免了递归的空间管理操作。而这种情况在数据字典管理的表空间是经常出现的,当表空间里的区的使用状况发生改变时,数据字典的表的信息发生改变,从而同时也使用了在系统表空间里的回滚段。
      2. 本地化管理的表空间避免了在数据字典相应表里面写入空闲块、已使用块的信息,从而减少了数据字典表的竞争。
      3. 区的本地化管理自动跟踪表空间里的空闲块,减少了手工合并自由空间的需要。
      4. 表空间里的区的大小可以选择由Oracle系统来决定,或者由数据库管理员指定一个统一的大小。
      5. 从由数据字典来管理空闲块改为由数据文件的头部记录来管理空闲块,这样避免产生回滚信息,不再使用系统表空间里的回滚段。因为由数据字典来管理的话,它会把相关信息记在数据字典的表里,从而产生回滚信息。
    由于这种表空间的以上特性,所以它支持在一个表空间里边进行更多的并发操作,并减少了对数据字典的依赖。
    当然本地化管理的表空间也不是对所有的数据库和数据库对象都是适用的。首先,它不能指定存储特性,无STORAGE子句可供使用。其次,它不适用于存储较小的数据库对象。
      总的来说,oracle8I 提供了这种全新的表空间管理方式,给了我们更多的选择。对于用来存储大对象的表空间和临时表空间来说,用本地化管理的表空间组织方式不失为一个较好的选择。