Oracle 空闲列表管理机制与pctfree和pctused参数
2007-11-08 20:58
399 查看
Oracle中有空闲列表的概念.空闲列表中存储的是可供插入新行的块信息
所以新的行数据只会插入到那些存在于空闲列表中的块.
空闲列表的管理机制与建表时pctfree和pctused参数两个参数有紧密关系.
当一个块第一次开辟的时候,当然是在空闲列表中的.
随着不断地插入行数据,当使用率达到或者超过 1-PCTFREE%的时候,该块从空闲列表中移出.
所以这时候新的行数据不可能再存放到该块中. 那这个剩余的PCTFREE%部分岂不是浪费了,当然不是了.
随着UPDATE 活动的增多,某些存在该块中的行数据的就会变大,变大部分的数据就存放在PCTFREE部分中.
Delete活动,会将行数据从块中抹去,这时候块的使用率可能会低于1-pctfree%, 但是该块还是不会
立即回到空闲列表,也就是该块这时候不会接受新的行数据. 那什么时候该块会重新回到空闲列表中呢?
直到该块的使用率低于PCTUSED%的时候,才会回到空闲列表中,也就是说这时候可以接受新的行数据了.
所以当你的系统有较多的update活动并且行数据的大小变化较大的时候,应该预留较多的pctfree.
例如一个公文审批系统,一个公文在流转的过程中,数据在不断地变大。
对于一个没有update活动的表,可以将其设置为0.如系统中的组织架构表,更新的可能性几乎为0。
如果你想充分地利用块,则将PCTUsed 设置地高一点,以便在发生Delete活动后,快速地回到空闲列表中.
所以新的行数据只会插入到那些存在于空闲列表中的块.
空闲列表的管理机制与建表时pctfree和pctused参数两个参数有紧密关系.
当一个块第一次开辟的时候,当然是在空闲列表中的.
随着不断地插入行数据,当使用率达到或者超过 1-PCTFREE%的时候,该块从空闲列表中移出.
所以这时候新的行数据不可能再存放到该块中. 那这个剩余的PCTFREE%部分岂不是浪费了,当然不是了.
随着UPDATE 活动的增多,某些存在该块中的行数据的就会变大,变大部分的数据就存放在PCTFREE部分中.
Delete活动,会将行数据从块中抹去,这时候块的使用率可能会低于1-pctfree%, 但是该块还是不会
立即回到空闲列表,也就是该块这时候不会接受新的行数据. 那什么时候该块会重新回到空闲列表中呢?
直到该块的使用率低于PCTUSED%的时候,才会回到空闲列表中,也就是说这时候可以接受新的行数据了.
所以当你的系统有较多的update活动并且行数据的大小变化较大的时候,应该预留较多的pctfree.
例如一个公文审批系统,一个公文在流转的过程中,数据在不断地变大。
对于一个没有update活动的表,可以将其设置为0.如系统中的组织架构表,更新的可能性几乎为0。
如果你想充分地利用块,则将PCTUsed 设置地高一点,以便在发生Delete活动后,快速地回到空闲列表中.
相关文章推荐
- Oracle 空闲列表管理机制与pctfree和pctused参数
- Oracle 空闲列表管理机制与pctfree和pctused参数
- oracle中PCTFREE, PCTUSED, INITRANS, MAXTRANX参数
- oracle pctfree和pctused详解
- Oracle pctfree和pctused详解
- 二、oracle pctfree和pctused详解
- Oracle中关于PCTFREE和PCTUSED的说明
- Oracle PCTFREE PCTUSED FREELIST 讲的明白
- oracle pctfree和pctused详解
- oracle表空间中PCTFREE, PCTUSED, INITRANS, MAXTRANX参数的解释
- Oracle PCTFREE PCTUSED FREELIST讲解
- 【oracle】PCTFREE And PCTUSED
- oracle概念和术语 建表时的一些参数pctfree initrans maxtrans sto
- oracle pctfree和pctused详解
- 分析以及测试PCTFREE和PCTUSED参数是如何协调工作的(下)
- Oracle中的pctfree和pctused
- 对表的pctfree和pctused两个参数进行估算的方法
- Oracle pctfree,pctused,initrans,maxtrans
- Oracle 表存储参数pctfree 的设置
- 关于PCT_FREE 和PCT_USED 参数详解