优秀是一种习惯 , 生活是一种过程, 放弃是一种智慧 , 缺点是一种恩惠。 爱好:看书/K歌/上网/游泳/汉服 哼着單身情歌,彈着藍色吉它,展示突然的自我

Oracle 空闲列表管理机制与pctfree和pctused参数

上一篇 / 下一篇  2007-12-21 08:39:25

 被擊碎的自信,被老本行Oracle一片一片的恢復。- ----譚志堅     

pctfree参数设小,可用于insert的空间就多一些了,但是,如果update多的話,那pctfree 需要設置大 點。

Oracle中有空闲列表的概念.空闲列表中存储的是可供插入新行的块信息.所以新的行数据只会插入到那些存在于空闲列表中的块. 空闲列表的治理机制与建表时pctfree和pctused参数两个参数有紧密关系. 当一个块第一次开辟的时候,当然是在空闲列表中的.
  随着不断地插入行数据,当使用率达到或者超过 1-PCTFREE%的时候,该块从空闲列表中移出.
  所以这时候新的行数据不可能再存放到该块中. 那这个剩余的PCTFREE%部分岂不是浪费了,当然不是了.
  随着UPDATE 活动的增多,某些存在该块中的行数据的就会变大,变大部分的数据就存放在PCTFREE部分中.
  Delete活动,会将行数据从块中抹去,这时候块的使用率可能会低于1-pctfree%, 但是该块还是不会立即回到空闲列表,也就是该块这时候不会接受新的行数据.  那什么时候该块会重新回到空闲列表中呢?
  直到该块的使用率低于PCTUSED%的时候,才会回到空闲列表中,也就是说这时候可以接受新的行数据了.
  所以当你的系统有较多的update活动并且行数据的大小变化较大的时候,应该预留较多的pctfree.
  例如一个公文审批系统,一个公文在流转的过程中,数据在不断地变大。
对于一个没有update活动的表,可以将其设置为0.如系统中的组织架构表,更新的可能性几乎为0。
  假如你想充分地利用块,则将PCTUsed 设置地高一点,以便在发生Delete活动后,快速地回到空闲列表中.


TAG:

浪花七八朵 引用 删除 tieshuai   /   2008-03-06 09:10:49
能幫我介紹,我一定謝謝你,一定請你
引用 删除 Guest   /   2008-03-04 18:25:23
   征婚呢还  什么事情都不耽误啊
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-09-07  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 2205
  • 日志数: 72
  • 建立时间: 2007-12-18
  • 更新时间: 2008-08-06

RSS订阅

Open Toolbar