- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
刚才Debbie问什么是freelists,我直接copy老盖的文章了,不过发现竟然是张乐奕写的!也是一个大牛啊,不过被老盖收到自己麾下了。。。N多大牛被老盖收了,不得不说这是老盖超越众多更牛DBA比较IN的地方。。。一.???????什么是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是否已经过时随着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 groups又都只有1,所以又恰恰是高负载的应用中最需要调整(Tuning)的部分之一。?三.???????freelists存储在哪儿freelists存储在每个segment的header block中,我们可以通过dump来得到更清楚的认识。dump在研究oracle的内部机制时通常都扮演着很重要的角色。假设我们创建一个表空间TS_TEST,此表空间是非自动段空间管理的,然后在该表空间中创建T_MANUAL,T_MANUAL_
您可能关注的文档
最近下载
- 新22J04-2 内装修二(细部构造).docx VIP
- 第1课《消息二则》同步作业部编版语文八年级上册.docx VIP
- 2020新译林版高中英语选择性必修四Unit2 Integratedskills课件.pptx VIP
- NB/T 20007.1-2024 压水堆核电厂用不锈钢 第1部分:1、2、3级设备用奥氏体不锈钢锻件.pdf VIP
- 欧陆EV100系列矢量型变频器.doc
- 医疗机构管理条例试题及答案.docx VIP
- 2025年焊工(技师)职业技能鉴定理论考试题库(含答案).docx
- 山东省临沂市百师联盟2024-2025学年高三上学期开学考试化学试题(无答案).pdf VIP
- M1332B型 外圆磨床说明书完成版.pdf VIP
- 巴菲特名言经典语录巴菲特经典语录大全.doc VIP
文档评论(0)