oracle中约束条件m,对Oracle 10g ASSM管理方式的理解 I

从10g开始,对创建tablespace, Oracle强制使用locally management的管理方式,用dictionary 的管理方式只是用于针对向下兼容. 做个简单的测试如下 :

SQL> create tablespace test2

2 datafile size 10m

3 extent management dictionary;

create tablespace test2

*

ERROR at line 1:

ORA-12913: Cannot create dictionary managed tablespace

Dictionary-managed tablespace的管理方式是通过系统表来管理, 它相关的信息是存在data dictionary中的, 那就是说对于空间使用的变化情况都需要通过更新

data dictionary中相关的表来进行跟踪. 所以在更新用户使用表的时候, 还需要去更新系统表, 这会产生了递归SQL调用. 并且去更新这些系统表的操作是串行的, 在做更新前还需要获得相应的lock. 那么, 在系统繁忙的时候就会发生竞争和等待. 这就会降低系统整体的性能.

[@more@]

locally management引入了bitmap来管理tablespace中空间的使用情况,每一个bit就会对应一个或一组blocks. 用这种方式绕开了data dictionary来管理, 减少了竞争, 从而提高了性能.

在locally managed-tablespace的管理下, 又可以分为automatic和Uniform. Automatic就是指在tablespace中extent的大小分配是由oracle 系统自己管理的. Uniform就是指分配所有的extent的大小都是一样的, 默认是1M. Temporary tablespace 就是用的Uniform方式管理. 但, Undo tablespace不能用Uniform方式.

在locally managed-tablespace下, 对segment 的管理可以分为Automatic和Manual.

1. Automatic就是ASSM管理方式, oracle用bitmap的方式来管理segment中block的使用状态,引用一段oracle官方的描述

"The bitmap describes the status of each data block within a segment with respect to the amount of space in the block that is available for inserting rows".

2. Manual就是用free list 来管理, 受到 PCTFREE, PCTUSED, FRELISTS 等参数的影响. 简单说来就是当一个block中的free 空间减少到PCTFREE指定的值,就会从free list上取下来, 不会在有新数据能插入到这个block, 剩下的空间是留给block中可能存在的扩充操作, 如update了这个block中的一行, 使这一行所需要的存储空间增加, 那就会使用这个block中剩下的空闲空间. 如果对PCTFREE参数配置不当, 就可能产生过多的row migration, 就是所谓的行迁移. 当block中被使用的空间小于PCTUSED指定的值, block就会放回到free list上, 允许新数据插入到个block中.

通过下面语句查看现在系统中Tablespace的创建情况.

SQL> select TABLESPACE_NAME, EXTENT_MANAGEMENT, ALLOCATION_TYPE, SEGMENT_SPACE_MANAGEMENT from dba_tablespaces;

TABLESPACE_NAME EXTENT_MAN ALLOCATIO SEGMEN

------------------------------ ---------- --------- ------

SYSTEM LOCAL SYSTEM MANUAL

UNDOTBS1 LOCAL SYSTEM MANUAL

SYSAUX LOCAL SYSTEM AUTO

TEMP LOCAL UNIFORM MANUAL

USERS LOCAL SYSTEM AUTO

TEST LOCAL SYSTEM AUTO

PROFSTAT LOCAL SYSTEM AUTO

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值