- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]Oracle中 HWM与数据库性能的探讨.doc
Oracle中 HWM与数据库性能的探讨
oracle中关于table的HWM的内容,主要包括这样几个内容:
什么是HWM?
HWM是如何移动的。
HWM对于性能的影响
何时应该降低以及如何降低HWM
其他一些影响HWM的操作
除了特殊注明,本章内容所有的实验都基于:win2000,oracle9201,bolcksize 8K的实验环境。
?
一、什么是HWM
HWM(high water mark),高水标记,这个概念在segment的存储内容中是比较重要的.简单来说,HWM就是一个segment中已使用和未使用的block的分界线.
在oracle的concept中对于HWM的说明是这样的:在一个segment中,HWM是使用和未使用空间的分界线。当请求新的空闲块,并且现有空闲列表中的块不能满足要求时,HWM指向的块将被标记为已使用,然后HWM将移动指向下一个未使用过的块。
我们知道,在oracle中,存储数据的最小单元是block,对于一个segment(table或index),都是由很多的block组成的,这些block的状态分为已使用和未使用两种,一般来说,在HWM之下的block都是存储过数据的. 如图:
?
从上面的图,我们就能很清楚的看到,一个segment中的block的分布情况。在HWM左边的block是已使用的,或者说是可以用来存储数据的。而HWM右边的block是不能用来存储数据的。当HWM左边的block空间都使用完之后,还有新的数据需要存储,怎样处理呢?这时oracle会向右移动HWM,即把右边的没有使用的block移到HWM的左边,这时HWM左边的block就增加了,那么就有新的block空间可供使用了。
?
Oracle从9i开始,推出了新的一种segment的空间管理方式,即ASSM(auto segment space management)。这种segment在空间管理上和以前的FLM(freelist management)是不一样的。这里我们简单地介绍一下。
在FLM模式下,对于一个segment的HWM下的所有block空间的使用,是通过freelist来管理的,freelist位于segment的第一个extent中。一个block何时应该位于freelist之上,取决于PCTUSED和PCTFREE这样两个参数。基于freelist管理模式和位于segment header的情况,如果对一个segment进行高并发的频繁的DML操作,不可避免的出现header争用的情况,虽然我们可以采用增加freelists或freelist group的方式来缓解这种状况。
那么从oracle92开始,推出了ASSM这样一种全新的segmeng空间管理的方式(又称为Bitmap Managed Segments), freelist被位图所取代,使用位图来管理block的空间使用状况,并且这些位图块分散在segment中。ASSM管理的segment会略掉任何为PCTUSED、NEXT和FREELISTS所指定的值。
使用ASSM也有一定的局限性:
ASSM只能位于Local Manage的tablespace之上;
不能够使用ASSM创建临时的tablespace;
LOB对象不能在一个指定进行自动段空间管理的tablespace中创建。
?
以上我们简单地介绍了ASSM和FLM的概念和区别,接下来,我们来看看这两种segmeng空间管理模式在HWM的处理上有什么不同。
?
二、初始创建的table中HWM的不同情况
?
FLM管理的table:我们先创建名为HWM的tablespace,指定非自动段空间管理,extent大小为40K。并在上面创建table TEST_HWM,PCTFREE 40 PCTUSED 20。
SQL connect dlinger/dlinger@oracle9i_dl
连接到:
Oracle9i Enterprise Edition Release .0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release .0 - Production
?
SQL CREATE TABLESPACE HWM
DATAFILE D:\ORACLE\ORADATA\ORACLE9I\HWM.dbf
SIZE 50M uniform size 40K;
?
表空间已创建。
?
SQL select TABLESPACE_NAME,BLOCK_SIZE,EXTENT_MANAGEMENT,
2 ALLOCATION_TYPE, SEGMENT_SPA
文档评论(0)