xiaocainiao 发表于 2011-3-9 09:28:15

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

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

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

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

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

lcl150800 发表于 2011-3-9 12:31:26

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

oraunix 发表于 2011-3-9 17:13:23

完全两码事,区间管理和段管理没有必然联系。
你不是我的学生吧,看看笔记。

oraunix 发表于 2011-3-9 17:18:43

现在都要求使用自动段管理空间技术,否则容易出现freelist争用。

xiaocainiao 发表于 2011-3-9 21:19:09

谢谢相老师。。。

zhaojingyuo 发表于 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使用的也是位图,有点像索引的树状结构,数据块记录了下级数据快的地址和使用情况。

rockyan712 发表于 2011-3-25 09:46:13

不错 复习了 THANKS A LOT
页: [1]
查看完整版本: 请教关于表空间管理的问题