- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle free_list分析
oracle free_list分析
关于Freelists和Freelist Groups的研究(修订版)- 什么是freelists
--------------------------------------------------------------------------------
一. 什么是freelists本文在于探讨Freelists和Freelist Groups的作用,存取机制,争用诊断和优化方法,同时通过理论和测试来推翻一些存在了很久的错误观点。本文的读者应该具有较深入的Oracle知识,对于一般的开发人员这篇文章可能并没有太多的帮助。我们知道Oracle数据库的读取单位是数据块(Block),而一个Block是否允许被写入数据是基于一定的空闲度,这就是大家知道的pctfree和pctused存储参数设置。假设pctfree=10, pctused=40,这就表明当一个Block的空间使用率达到了90%(100-pctfree)时,这个block就不再允许被用于新增数据(insert),而保留下来的这10%的空间则被预留为行更新(update)所可能需要的空间扩展,我们说此时这个block就从freelist上被摘走了(实际上还有另外一种情况,就是当块剩余空间不足以插入一条记录并且该块的使用率已经超过了pctused定义的值并且该块位于freelist header处时,该块也会从freelist上被摘走,术语称为UNLINK)。当有数据删除(delete)的时候,只有该block中的数据被删除到一定的程度,该块才会重新被加入到freelists中,而这个程度就是pctused参数定义的数值,如我们这个例子中,只有块中的数据降低到40%以下的时候,该块才被重新允许用于新增数据。通过上面的描述,可以知道所谓freelists,就是一个指定了所有可以用于insert操作的数据块的列表。存在在这个列表中的数据块才能用于insert操作,一旦一个数据块无法用于insert(达到了pctfree参数指定的限度)则立刻从这个列表中被摘除。freelists的作用就在于管理高水位标志(HWM)以下的空闲空间。注意:freelists只是管理高水位标志以下的空闲空间,而实际上一个segment可用的空闲空间包括两种类型:1. 已经分配给这个segment但是从来未被使用过的位于高水位标志之上的blocks2. 位于高水位标志之下,被链接在freelists上的blocks 至于freelist groups的概念和作用,在下面的章节适当的地方会解释。
关于Freelists和Freelist Groups的研究(修订版)- freelists是否已经过时
--------------------------------------------------------------------------------
二. freelists是否已经过时随着Oracle9i的推出,对于空闲块的管理变得更加智能和有效率了。在LMT(Locally Managed Tablespaces)中如果指定了ASSM(Automatic Segment Space Management),那么对于任何pctused,freelists,freelist groups存储参数的指定都将被忽略。创建ASSM表空间的方法如下: CREATE TABLESPACE lmtbsb DATAFILE /u02/oracle/data/lmtbsb01.dbf SIZE 50M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; ASSM得益于使用位图(bitmaps)来管理段中的空闲块,至于具体是如何管理的,那又是另外一篇文章了。就此意义上来说,对于freelists的探讨确实可能已经有些过时了,但是首先并不是所有的数据库现在都已经升级到了Oracle9i,甚至在最需要调整的一些大型应用上往往都由于业务的稳定性而不愿意冒升级到新版本的危险;其次即使是新的应用使用了Oracle9i数据库,如果数据库管理员在创建表空间的时候没有明确指定SEGMENT SPACE MANAGEMENT AUTO,那么默认情况下仍然会使用Freelists和Freelist Groups来管理Free Block。所以,在仍然存在有大量Oracle8i数据库和非自动段空间管理表空间的现在,对于freelists的研究仍然具有很实际的意义,而由于默认的freelists和freelist gro
您可能关注的文档
最近下载
- (完整版)医务科督导检查表.pdf
- 超声科质控案例培训课件.pptx
- 2021-2022学年上海市虹口区复兴高级中学高三(上)期中英语试卷-附答案详解.pdf VIP
- 建設分野特定技能2号評価試験练习题5.doc
- 2025年公务员多省联考《申论》题(宁夏B卷).pdf VIP
- CATL安全作业试题及答案.doc
- 杜云生:绝对成交话术、顾客十大借口、电话营销话术.ppt
- 2024年抚州职业技术学院单招职业技能测试题库及答案(名校卷).docx VIP
- 中国儿童呼吸道合胞病毒感染诊疗及预防指南(2024)解读PPT课件.pptx VIP
- 2024年抚州职业技术学院单招职业技能测试题库(名校卷).docx VIP
文档评论(0)