- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle数据库中利用ASSM改善分段存储
Oracle数据库中利用ASSM改善分段存储
为了保持其最强大和最灵活数据库的地位,Oracle在最近发布的几个版本里一直都在创建新 的机制来对表格和索引的存储进行简化和分块。从Oracle8i开始,Oracle开始在tablespace内部将对象管理进行自动化。第一个增强的地 方原来叫做本地管理tablespace(或者简写作LMT)。在LMT里,Oracle将tablespace里的信息从数据字典的表格空间里移出去, 而直接将其保存到tablespace自身里。这在Oracle9i里已经成为了一个事实的标准,因为它减轻了数据字典的负担。
表格空间的第二个主要增强的是自动分段空间管理(ASSM),它首次出现在Oracle9i里。有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改善分段存储本质。
管理空间的两种方法
让我们从比较这两种空间管理开始:
本地管理tablespace(LMT)——LMT是通过把EXTENT MANAGEMENT LOCAL子句添加到tablespace的定义句法而实现的。和原来由字典管理的tablespace(DMT)不同,LMT会将扩展管理自动化,并保 持Oracle DBA不会被用来指定管理扩展大小的NEXT存储参数。这个原则唯一的例外是在NEXT和MINEXTENTS一起用在表格创建的时候。
自动区段空间管理(ASSM)——ASSM的tablespace是通过将 SEGMENT SPACE MANAGEMENT AUTO子句添加到tablespace的定义句法里而实现的。通过使用位图freelist取代传统单向的链接列表freelist,ASSM的 tablespace会将freelist的管理自动化,并取消为独立的表格和索引指定PCTUSED、FREELISTS和FREELIST GROUPS存储参数的能力。
Oracle值得赞扬的地方是,这两个空间管理的方法都是可选的特性,而且 Oracle的老手可能仍会使用更加详细的方法,只要他们愿意的话。要注意,位图区段管理在Oracle9i里是可选的,而且只能在tablespace 这一层实现,这一点是十分重要的。原有的系统还能够继续使用传统方法来管理freelist。
位图freelist挑战传统的空间管理
在我讨论位图freelist和传统的空间管理之前,让我们看看位图freelist是如何实现的。我会从使用区段空间管理自动参数创建tablespace开始:
create tablespace
asm_lmt_ts
datafile
c:\oracle\oradata\diogenes\asm_lmt.dbf
size
5m
EXTENT MANAGEMENT LOCAL -- Turn on LMT
SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM
;
一旦你定义好了tablespace,那么表格和索引就能够使用各种方法很容易地被移动到新的tablespace里。下面就是我进行创建的代码:
create table
new_cust
tablespace
assm_lmt_ts
as
select * from customer;
alter index cust_name_idx rebuild tablespace assm_lmt_ts;
要注意,当表格或者索引被分配到这个tablespace以后,用于独立对象的 PCTUSED的值会被忽略,而Oracle9i会使用位图数组来自动地管理tablespace里表格和索引的freelist。对于在LMT的 tablespace内部创建的表格和索引而言,这个NEXT扩展子句是过时的,因为由本地管理的tablespace会管理它们。但是,INITIAL 参数仍然是需要的,因为Oracle不可能提前知道初始表格加载的大小。对于ASSM而言,INITIAL最小的值是三个区块。
关于一个万能的方法对于Oracle来说是否是最好的方法还有一些争论。在大型数据库里,单独的对象设置会带来性能和存储上的巨大不同。
PCTFREE的问题
PCTFREE参数是用来指定数据块剩余空间大小的,这一空间为将来数据行的扩展而保留。如果PCTFREE设置得不得当,SQL的更新声明就可能导致大量的数据行碎片和断链。
数据行在刚保存的时候还很小,而在后来进行了扩展,在这种情况下,PCTFREE的设置就显得尤其重要了。在这样的
您可能关注的文档
- FC-01燃料电池简介.ppt
- FX11020-大连科利源电器有限公司.doc
- 宏源期货梁春峰看图识势11.13多数国内商品依然在熊市中.doc
- GB-中国通信标准化协会.doc
- fj计算机与信息技术基础第七章.ppt.ppt
- FYYL—6型压力表自动检定装置-仪器信息网.doc
- GB11915-89水质词汇第三部分~第七部分.doc
- 实习四截波电路与钳位电路.doc
- 实验3离散系统的频率响应分析和零、极点分布.doc
- EV系列变频器说明书EV系列变频器说明书MORE.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)