oracle创建本地表空间,oracle本地管理的表空间

本地的表空间(locally managed tablespace)在每个数据文件(datafile)中维护一个位图(bitmap),记录此数据文件内数据块(block)的状态(可用/占用),并据此管理表空间内的数据扩展(extent)。位图中的每一位代表

一个或一组数据块(block)。当一个数据扩展被分配或者被释放,Oracle负

责改变位图中相应的数据块的状态。这些修改不会产生回滚信息(rollback

information),因为她们不会更新数据字典( dictionary)中的表(一些

特殊的情况除外,例如改变表空间的配额(quota)信息)。

本地管理的表空间(locally managed tablespace)与数据字典管理的表空间

(dictionary managed tablespace)相比有如下优势:

● 在本地管理数据扩展(extent)的分配,易于查找连续的可用空间[此

处指数据块],避免了数据扩展合并(coalesce free extents)。

● 在本地管理数据扩展的分配,能够避免产生递归(recursive)的空间管

理操作。在使用数据字典管理的表空间时,分配或回收方案对象

(schema object)的数据扩展可能会导致数据字典表(data dictionary

table)或回滚段(rollback segment)中也产生分配或回收空间的操作,

即称为递归的空间管理操作。

在本地管理(locally managed)状态下,每次分配的数据扩展(extent)的容

量可以由系统自动地决定。此外,用户也可以覆盖方案对象默认的存储参

数,每次分配相同容量的数据扩展。

在 CREATE TABLESPACE 或 CREATE TEMPORARY TABLESPACE 语句中使

用 LOCAL 子句可以创建本地管理的(locally managed)永久表空间

(permanent tablespace)或临时表空间(temporary tablespace)。

本地管理的表空间中的段空间管理

用户使用 CREATE TABLESPACE 语句创建一个本地管理的表空间(locally

managed tablespace)时,可以使用 SEGMENT SPACE MANAGEMENT 子句来

设定段(segment)内的可用/已用空间如何管理。可选的方式有:

● AUTO

在这种设置下,Oracle使用位图(bitmap)管理段内的可用空间。[注

意此处的位图与本地管理的表空间使用的位图不一样]此处的位图用于

描述段内每个数据块(data block)是否有足够的可用空间来插入

(insert)新数据。随着一个数据块中可用空间的变化,她的状态也被

及时地反映到位图中。Oracle使用位图可以更自动化地管理段内的可

用空间。这种空间管理形式被称为自动段空间管理(automatic

segment-space management)。

一个本地管理的(locally managed),且使用自动段空间管理的表空

间,既可以被创建为小文件表空间(传统的)(smallfile tablespace),

也可以被创建为大文件表空间(bigfile tablespaces)。在创建本地管理

的表空间时,自动段空间管理是默认值。

● MANUAL

在这种设置下,Oracle使用可用块列表(free list)来管理段内的可用空

间。可用块列表记录了所有可以被用于插入新数据的数据块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值