您的位置:首页 > 数据库 > Oracle

Oracle的表空间的存储管理与优化技术

2012-02-13 17:17 281 查看
一、表空间的作用与分类

表空间是数据库中最大的逻辑存储结构,为数据库提供使用空间,其对应物理结构是数据文件,一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。表空间所包含的数据文件的大小,也就决定了表空间的大小,所以,表空间也是逻辑结构连接到物理结构的一个纽带。

既然表空间为数据库提供使用空间,它就必须有自己的空间管理办法,在表空间中增加,删除段的时候,数据库就必须跟踪这些段空间的使用。

如下例所示,假定一个新创建的表空间包含了五个表

表一......表二......表三......表四......表五......未用空间

当我们删除表四的时候,就有如下结果

表一......表二......表三......空闲空间段......表五......未用空间

很明显,ORACLE需要有一个机制来管理表空间中各数据文件的这些分配的或未分配的空间,为了跟踪这些可以使用的空间(包括未分配使用的和可以重复使用的),对于每一个空间,我们必须知道:

1、这个可用空间位于什么数据文件

2、这个空间的尺寸是多大

3、如果它在用了,是哪一个段占用的这个空间

在空间的管理方式上,ORACLE推出了三种主要的空间管理方式,

一种是8i以前的字典管理方式(DMT),把可用空间和未用空间在数据字典中管理,ORACLE通过一个迭归SQL语句该字典表中请求空间。

另外一种就是8i以后的本地管理模式(LMT),本地管理模式完全放弃以前的管理方法,通过在数据文件的头部建立位图区域来管理空间的分配,在一定程度上避免了并发上的冲突;而且本地管理表空间通过存储上统一的空间管理并取消了为独立的段的NEXT存储参数,也解决了表空间一直以来头疼的碎片问题。

还有一种自动区段空间管理(ASSM)是9iR2推出的一种表空间级别的段空间管理模式,ASSM表空间是通过将SEGMENT SPACE MANAGEMENT AUTO子句添加到本地管理表空间的定义句法里而实现的。通过使用位图数组取代传统单向的链接列表(FREELIST),ASSM表空间会将链接列表的管理自动化,并取消为独立的段指定PCTUSED、FREELISTS和FREELIST GROUPS存储参数。

注意:ASSM表空间一定就是LMT表空间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Oracle 职场 休闲