May 2012
M T W T F S S
« Apr    
 123456
78910111213
14151617181920
21222324252627
28293031  

Oracle中已经废弃和可能废弃的参数 – 存贮管理

Kaya 发表于 os2ora.com

Oracle总在不停的前进,于是,新的管理方式出现了,旧的管理方式慢慢地退出了历史舞台,与之相联系的参数也就慢慢的销声匿迹了。
这里要说的是空间管理方面。首当其冲的是Dictionary Managed Tablespaces。
在10g里,SYSTEM表空间默认是locally managed的,在这种情况下,dictionary managed tablespaces是不能被创建的。
所以,下面假定所有的叙述基于Locally Managed Tablespace。

对于Locally Managed Tablespace,有两个子选项:
EXTENT MANAGEMENT LOCAL
   AUTOALLOCATE
   UNIFORM SIZE 1M
AUTOALLOCATE指定让Oracle负责决定Extent的大小。一般的规则是先创建的extent比较小,后面创建的extent比较大。
UNIFORM指定让所有的Extent一样的大小。大小由后面的Size子句决定。

在SEGMENT SPACE MANAGEMENT方面,也有两种方式
SEGMENT SPACE MANAGEMENT
    AUTO
    MANUAL
AUTO指定用bitmap的方式管理free space。
Manual指定用freelists的方式管理free space。

于是,在创建表时, 根据这个表所在的表空间的类型,有些参数就显得过时了。

INITIAL, NEXT, PCTINCREASE, 和 MINEXTENTS这四个参数只是用来决定当一个对象创建时,要分配的extent的数量。之后,这些参数都被忽略。分配空间的大小等于INITIAL * MINEXTENTS。而MINEXTENTS的值默认为1,所以一般只用INITIAL就可以了。

MAXEXTENTS 不管在什么情况下都被忽略。

如果是采用SEGMENT SPACE MANAGEMENT AUTO,那么PCTUSED, FREELIST 和 FREELIST GROUPS都被忽略。

总结一下,
1. 对于ASSM, 只有两个参数可以/值得配置:PCTFREE, INITIAL
2. 对于MSSM,除了PCTFREE, INITIAL之外, PCTUSED, FREELIST 和 FREELIST GROUPS也可以配置。

从dictionary managed 到locally managed, 从MSSM再到ASSM,整个世界一下子清静下来了,或许从8i及以前版本升级上来的DBA会有更深的体会 ……

1 comment to Oracle中已经废弃和可能废弃的参数 – 存贮管理

  • banky

    描述的很清楚,之前一直没有好好理解ASSM,MSSM 的区别,Ba主的解释就是点睛之笔,让人看完很容易理解。非常感谢。

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">