WEB开发网
开发学院数据库Oracle Oracle Freelist和HWM原理及性能优化 阅读

Oracle Freelist和HWM原理及性能优化

 2007-05-10 12:19:16 来源:WEB开发网   
核心提示: 2.原理探讨FreeList作为一个Oracle存储管理的核心参数,其行为方式由Oralce内部控制,Oracle Freelist和HWM原理及性能优化(2),我们一般不需要掌握和控制,但是我们可能会遇到这些问题,但是还未被使用,2.段中所有在HWM下的且链入了free list的块,当

2.原理探讨

FreeList作为一个Oracle存储管理的核心参数。其行为方式由Oralce内部控制,我们一般不需要掌握和控制。但是我们可能会遇到这些问题,当插入一条记录,会插入到那个块中?是使用新块,还是插入有数据的老块?段是什么时候扩展的,如何扩展的?表中只有一条记录,但是作一次select时代价却是上千个块,为什么?如果我们从原理上清楚了Oracle的存储管理方式,对相关这些问题的解决及性能优化就清晰自然了。

2.1 Oracle的逻辑储存结构

Oralce的逻辑存储结构按表空间,段,区,块进行管理。块是Oracle用来管理存储空间的最基本单元,Oracle数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。区由一系列连续的块组成,Oralce在进行空间分配、回收和管理时是以区为基本单位的。段由多个区组成,这些区可以是连续的也可以是不连续的,一般情况下一个对象拥有一个段。表空间中容纳段和区。

在生成段的时候,会同时分配初始区(initial extents), 初始区的第一个块就格式化为segment header,并被用来记录free list描述信息、extents信息,HWM信息等。

2.2 free list概念

free list是一种单向链表用于定位可以接收数据的块,在字典管理方式的表空间中,Oracle使用free list来管理未分配的存储块。Oracle记录了有空闲空间的块用于insert或Update。空闲空间来源于两种方式:1.段中所有超过HWM的块,这些块已经分配给段了,但是还未被使用。2.段中所有在HWM下的且链入了free list的块,可以被重用。free list具有下列属性

l flag指示free list 被使用(1)或未使用(0)

l free list 链的首块的地址DBA(data block address)

l free list 链的尾块的地址DBA

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle Freelist HWM

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接