c******a 发帖数: 2516 | 1 小弟初学oracle,对其中有一些不明之处请教各位大虾:
有两个空间管理参数(PCTFREE和PCTUSED)
PCTFREE是为数据块中保留的未用空间的百分数,如果 PCTFREE 20
那么该表数据段的每一块的20%是必须保持未用的.
PCTUSED是当数据块被填满之后(由PCTFREE决定),该块不能考虑插
入新行,但是当它使用率低于PCTUSED参数时,又可插入.
那么当数据块设置为pctfree=20,pctused=40 时,系统是这样维护
空间的:
1、 可插入行到占用80%的空间,因为pctfree为20%,所以该块必
须保留20%的未用空间;
2、 当使用空间不低于40%时,该块不能插入新行,在已使用空间
小于40%之后,新行可以再次插入该块;
如果是这样的话,这个块的使用上限将是40%,那么pcrfree=20 还
有什么意义呢? | f*******y 发帖数: 1 | 2
插入的新BLOCK也许占用空间可达 60%或者 79% !
所以,你的概念有问题。这的确是ORACLE DATABASE存储的一个难点
。
借助这样2个参数,可以优化DATAABASE。
【在 c******a 的大作中提到】 : 小弟初学oracle,对其中有一些不明之处请教各位大虾: : 有两个空间管理参数(PCTFREE和PCTUSED) : : PCTFREE是为数据块中保留的未用空间的百分数,如果 PCTFREE 20 : 那么该表数据段的每一块的20%是必须保持未用的. : PCTUSED是当数据块被填满之后(由PCTFREE决定),该块不能考虑插 : 入新行,但是当它使用率低于PCTUSED参数时,又可插入. : 那么当数据块设置为pctfree=20,pctused=40 时,系统是这样维护 : 空间的: : 1、 可插入行到占用80%的空间,因为pctfree为20%,所以该块必
|
|