请教关于表空间管理的问题

本地管理和自动段空间管理的区别?

1 建本地管理表空间
SQL> create tablespace "TS_METER"
              datafile  '/dev/vg02/rTS_METER1' size 5000M  REUSE
              EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M;

2 建自动段空间管理的表空间
SQL> create tablespace "TS_METER"
              datafile  '/dev/vg02/rTS_METER1' size 5000M  REUSE
              EXTENT MANAGEMENT LOCAL
             segment space management auto;

请问他们之间的区别,以及在什么场合下最合适采用哪种?
自动段空间管理在什么场合使用比较合适?

标签: 暂无标签
xiaocainiao

写了 10 篇文章,拥有财富 385,被 3 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2011-3-9 12:31:26
个人认为,有可能是错误的。
当你存储够大,剩余空间很多的时候,可以考虑自动扩展表空间。
如果空间不足,为防止空间满后无法打开数据库的情况发生,可以采用手动管理,以防止出现情况。
不知道个人理解对还是不对,请各位OCM来进来静定
回复

使用道具

P6 | 发表于 2011-3-9 17:13:23
完全两码事,区间管理和段管理没有必然联系。
你不是我的学生吧,看看笔记。
回复

使用道具

P6 | 发表于 2011-3-9 17:18:43
现在都要求使用自动段管理空间技术,否则容易出现freelist争用。
回复

使用道具

P4 | 发表于 2011-3-9 21:19:09
谢谢相老师。。。
回复

使用道具

P4 | 发表于 2011-3-11 14:31:31
本地管理(LMT)和数据字典管理(DMT)都是管理segment中extent分配和释放的
现在都是使用本地管理,也就是数据文件头部的3-8号块存放bitmap,bitmap中的一位就代表一个extent,这一位为1的话就说明对映的extent已经使用,为0则相反。
相对与DMT的好处就是没有涉及sql,没有事物,锁,回滚等,空间合并方便,比如连续的0

段空间管理分为手工和自动
手工的9i以前使用
一个segment中的头部指向一个可用的freelist起点,freelist上面挂的都是可用的数据块,当需要使用可用块的时候,就会锁着segment header,然后进行遍历,所以比如多个sql对用一个表insert的时候,就可能会引起freelist的争用。
现在都是自动也就是ASSM
ASSM使用的也是位图,有点像索引的树状结构,数据块记录了下级数据快的地址和使用情况。
回复

使用道具

P4 | 发表于 2011-3-25 09:46:13
不错 复习了 THANKS A LOT
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈