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

原创 2008年10月02日 11:09:00
导读:




Oracle中有空闲列表的概念.空闲列表中存储的是可供插入新行的块信息

所以新的行数据只会插入到那些存在于空闲列表中的块.

空闲列表的管理机制与建表时pctfree和pctused参数两个参数有紧密关系.

当一个块第一次开辟的时候,当然是在空闲列表中的.

随着不断地插入行数据,当使用率达到或者超过 1-PCTFREE%的时候,该块从空闲列表中移出.

所以这时候新的行数据不可能再存放到该块中. 那这个剩余的PCTFREE%部分岂不是浪费了,当然不是了.

随着UPDATE 活动的增多,某些存在该块中的行数据的就会变大,变大部分的数据就存放在PCTFREE部分中.



Delete活动,会将行数据从块中抹去,这时候块的使用率可能会低于1-pctfree%, 但是该块还是不会

立即回到空闲列表,也就是该块这时候不会接受新的行数据.  那什么时候该块会重新回到空闲列表中呢?

直到该块的使用率低于PCTUSED%的时候,才会回到空闲列表中,也就是说这时候可以接受新的行数据了.



所以当你的系统有较多的update活动并且行数据的大小变化较大的时候,应该预留较多的pctfree.

例如一个公文审批系统,一个公文在流转的过程中,数据在不断地变大。

对于一个没有update活动的表,可以将其设置为0.如系统中的组织架构表,更新的可能性几乎为0。


如果你想充分地利用块,则将PCTUsed 设置地高一点,以便在发生Delete活动后,快速地回到空闲列表中.
本文转自

http://www.cnblogs.com/SharkXu/archive/2007/11/08/OracleIdleBlock.html

Oracle pctfree和pctused详解

pctfree这个参数定义了一个块保留空间的百分比,保留空间是为了将来可能发生的更新操作,因为更新可能增大被更新行占用的空间,如果此时该块没有可利用空间,那么只有发生row migrate了,从而会...
  • zoubf
  • zoubf
  • 2015年09月07日 09:55
  • 2026

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

Oracle中有空闲列表的概念.空闲列表中存储的是可供插入新行的块信息所以新的行数据只会插入到那些存在于空闲列表中的块. 空闲列表的管理机制与建表时pctfree和pctused参数两个参数有紧密关系...
  • arduousbonze
  • arduousbonze
  • 2008年11月26日 10:18
  • 625

关于 PCTFREE and PCTUSED详解

为了便于理解,先看看这些概念的意思 在字典管理时使用: 为了便于理解,我们可以把整个块看成是2室1厅,其中1室占10%(pctfree)其中2室占40%(pctused),厅占50%,我们的仓库的...
  • lively1982
  • lively1982
  • 2013年12月06日 12:06
  • 878

Oracle PCTFREE PCTUSED FREELIST 讲的明白

 以下转载自yuan22003的文章 http://blog.csdn.net/yuan22003/article/details/6713964 在早期的手动空间管理阶段,Oracle通...
  • mjj291268154
  • mjj291268154
  • 2015年07月27日 20:13
  • 436

pctused and pctfree 表示什么含义有什么作用

 这牵涉到segment的管理了,由于oracle提供两种段管理方式一种是手动一种是ASSM方式管理、当建立表或索引的时候其对应的段会以extents为单位来分配空间的,如果之后再次插入数据还是会以e...
  • zhoubo200
  • zhoubo200
  • 2010年02月28日 14:38
  • 1034

分析以及测试PCTFREE和PCTUSED参数是如何协调工作的

测试 目的:为了更深入的理解PCTFREE和PCTUSED参数是如何协调工作的测试前提:要使得PCTFREE和PCTUSED参数起作用,其表空间的管理必须是MANUAL,所以新创建了一个表空间是seg...
  • daimin1983
  • daimin1983
  • 2008年03月19日 01:24
  • 941

段空间管理中的PCTFREE、PCTUSED和FREELISTS

在早期的手动空间管理阶段,Oracle通过一种列表结构FREE LIST来记录数据块的使用情况。需要为每个段设置几个参数。 PCTFREE定义数据块中空闲空间百分比 PCTUSED定义数据块被...
  • yuan22003
  • yuan22003
  • 2011年08月24日 10:24
  • 962

oracle pctfree与pctused

调整PCTFREE与PCTUSED 通过user_tables的pct_free,pct_used来查看 pctfree表示用于保留更新操作的百分比,如果超过该值不能插入数据。 pctused表...
  • chuanzhongdu1
  • chuanzhongdu1
  • 2011年11月01日 11:11
  • 583

oracle pctfree和pctused

1、PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个...
  • shihailong123
  • shihailong123
  • 2013年05月20日 10:04
  • 329

oracle数据块与PCTFREE PCTUSED

oracle默认PCTUSED 10 PCTUSED 40当数据块空间不足就会触发row migrate了,从而会降低I/O性能...
  • zwt0909
  • zwt0909
  • 2016年11月22日 11:42
  • 141
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle 空闲列表管理机制与pctfree和pctused参数
举报原因:
原因补充:

(最多只允许输入30个字)