Oracle8I新特性:本地化管理的表空间
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 提供了这种全新的表空间管理方式,给了我们更多的选择。
对于用来存储大对象的表空间和临时表空间来说,用本地化管理的表空间组织方式不失为一个较好的选择。