一、写作目的:
Oracle很多的知识点连贯的非常好,每一部分的联系都非常紧密,所以对于像我这样的Oracle菜鸟来说,打好基础,认真吃透所碰到的Oracle的细节问题,才是成长所必须做的。所以写下本文记录下自己学习的心得,仅仅代表个人看法。并且由于水平非常菜,写的自然也菜,仅仅是希望与各位同仁共同讨论学习进步。
二、探讨的内容:
本文从零开始讨论学习Oracle中表中的HWM的问题,主要包括什么是HWM,HWM是怎么样在数据改变的过程中移动的,HWM对于我们数据库性能的影响,如何发现HWM对性能所产生的影响,以及如何降低HWM和优化HWM对于数据库性能的影响。
三、学习正题:
(1)什么是HWM:
HWM是High Water Mark的缩写,意思是高水位标记。HWM是oracle segment中的一个比较重要的参数,它代表了该segment中曾经使用过的最大块空间,oracle把已经分配给该段的块分为2部分,一部分是已经或者说曾经使用到的最大空间,另一部分是已经分配给该段,但尚未被格式化,不能直接使用的部分,而hwm就是这2部分的分界线,oracle在需要新的空间的时候,先在hwm以下的块中寻找空间,如果空间不能满足,则使用hwm指向的快,然后hwm移动指向下一个块。
在这里讲解一下建立一个table或者index时是如何分配空间的:
在Oracle中Segment的空间分配是以Extent为单位的,当用户创建数据表时,Oracle为此表的数据段(data segment)分配一个包含若干数据块(data block)的初始数据扩展(initial extent)。初始数据扩展的大小可以在建表的参数中指定,虽然此时数据表中还没有数据,但是在此初始数据扩展中的数据块已经为插入新数据做好了准备。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22733608/viewspace-682629/
,如需转载,请注明出处,否则将追究法律责任。