Oracle:本地管理表空的由来

在Oracle8I的版本中,Oracle推出了一种全新的表空间管理方式:本地化管理的表空间。所谓本地化管理,就是指Oracle再也不利用数据字典表
来记录Oracle表空间里面的区的使用情况,而是在每一个表空间的数据文件的头部加入了一个位图区,在其中记录每一个区的使用情况。每当一个
区被使用,或者被释放以供从新使用时,Oracle都会更新数据文件头部的这个记录,反映这个变化。本地化管理的表空间的建立过程:
语法:CREATE TABLESPACE 表空间名字
DATAFILE '数据文件详细信息'
[EXTENT MANAGEMENT { LOCAL
{AUTOALLOCATE | UNIFORM [SIZE INTETER [K|M] ] } } ]
关键字EXTENT MANAGEMENT LOCAL 指定这是一个本地化管理的表空间。对于系统表空间,只能在建立数据库的时候指定EXTENT MANGEMENT
LOCAL,由于它是数据库建立时创建的第一个表空间。
在8i中,字典管理仍是默认的管理方式,当选择了LOCAL关键字,即代表这是一个本地管理的表空间。固然还能够继续选择更细的管理方式:是
AUTOALLOCATE 仍是 UNIFORM.。若为AUTOALLOCATE,则代表让Oracle来决定区块的使用办法;若选择了UNIFORM,则还能够详细指定每一个区块的
大小,若不加指定,则为每一个区使用1M大小。
Oracle之因此推出了这种新的表空间管理方法,让咱们来看一下这种表空间组织方法的优势:
1. 本地化管理的表空间避免了递归的空间管理操做。而这种状况在数据字典管理的表空间是常常出现的,当表空间里的区的使用情况发生改变
时,数据字典的表的信息发生改变,从而同时也使用了在系统表空间里的回滚段。
2. 本地化管理的表空间避免了在数据字典相应表里面写入空闲空间、已使用空间的信息,从而减小了数据字典表的竞争,提升了空间管理的并
发性。
3. 区的本地化管理自动跟踪表空间里的空闲块,减小了手工合并自由空间的须要。
4. 表空间里的区的大小能够选择由Oracle系统来决定,或者由数据库管理员指定一个统一的大小,避免了字典表空间一直头疼的碎片问题。
5. 从由数据字典来管理空闲块改成由数据文件的头部记录来管理空闲块,这样避免产生回滚信息,再也不使用系统表空间里的回滚段。由于由数
据字典来管理的话,它会把相关信息记在数据字典的表里,从而产生回滚信息。
因为这种表空间的以上特性,因此它支持在一个表空间里边进行更多的并发操做,并减小了对数据字典的依赖。
相关文章
相关标签/搜索