Chinaunix首页 | 论坛 | 博客
  • 博客访问: 927736
  • 博文数量: 358
  • 博客积分: 8185
  • 博客等级: 中将
  • 技术积分: 3751
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:27
个人简介

The views and opinions expressed all for my own,only for study and test, not reflect the views of Any Company and its affiliates.

文章分类

全部博文(358)

文章存档

2012年(8)

2011年(18)

2010年(50)

2009年(218)

2008年(64)

我的朋友

分类:

2009-01-13 12:44:44

为了便于理解,先看看这些概念的意思



在字典管理时使用:



为了便于理解,我们可以把整个块看成是2室1厅,其中1室占10%(pctfree)其中2室占40%(pctused),厅占50%,我们的仓库的门上贴上(空,满)两个状态,一开始状态为空,那么当我们第2室的空间一直在放东西,但该房间全部填满(40%的空间),然后厅也装满了(50%的空间),这时再装的话,门上贴上满的状态,这时只有减少某个货物的空间(UPDATE),或者拿走某个货物(DELETE),一直把厅里的所有货物都被清理后,门的状态就边成空的状态,这时,就可以从外面再装货物了。



这样设置的好处就是,假设你有很多仓库空着,但是你某个仓库,频繁的装入,卸载货物,始终没有把2室一厅添满,这样,所有的人都堆在该仓库中,那该仓库管理员是不是要累死,所以就要通过PCTFREE,PCTFREE,FREELIST来均衡到不同的仓库中。



设置pctused,pctfree的用处

为了避免行迁移和行链接,要均衡进出freelist(设置状态满/空)的频率,太频繁不好,状态一次也不变也不好



ORACLE通常通过牺牲空间来避免行迁移和行链接,也就是pctfree,所以我们考虑性能时,看既要尽量减少行迁移的发生,就是由于更新使原来行增成(比如VARCHAR2),我们可以理解为2号室加客厅都已经将近放满了,而这次更新使得空间将容不下整个2室一厅,也就是说更新变大的空间甚至搭上1号室还不够,就会产生行迁移的情况,所以更新变大的情况经常发生时,建议把1号室变大(也就是要用大PCTFREE)



那么如果pctused设置很大的情况下,这样就很容易有机会状态为空(进freelist),所以对(insert)有好处,因为他插入成功的几率很高,但是由于频繁插入,使得空间很快把厅(1-pctfree-pctfree)也装忙,当要update时,很容易行迁移,所以pctused适合频繁要插入的数据,当然有些删除也不错,这样也有更多的机会再次低于pctused,使得进入freelist.但我觉得太频繁的一下insert 一大批数据达到pctfree,状态为满,然后马上又删除大量的行,使得状态置为空也不好,频繁操作freelist,比如insert into tab 7K数据,紧接着delete tab 7k,这样频繁的操作就不合适了pctused很高了.

那么高pctfree的作用正好相反,他比较合适频繁更新的操作,因为,如果更新变大,也不容易行迁移,而且会大大利用pctfree的空间不至于浪费.如果更新变小,还可以便于INSERT操作.

那么如果有频繁删除(取货)或更新变小,使得很容易把状态至为空(进freelist)
pctfree和pctused的使用

  1. 较高的pctfree的值大约在20到25之间,较低的值为4或5,可用于静态表或只读表。
  2. 除非要严格地管理可用空间,否则不要设置pctused超过40或50。
  3. 一般这两个值地和不能达到90,否则会使Oarcle将更多地时间花费在处理空间利用上。下面是几个参考:
  4. pctfree 5,pctused 40 适合于静态表或只读表。
  5. pctfree 10,pctused 50 适合插入行后,更新活动不会增加已有行地长度地综合性OLTP系统。
  6. pctfree 20,pctused 40 适合于插入行后,更新活动会增加已有行地长度地OLTP系统。

几个概念:

1.pctfree: 如果在建表时指定 PCTFREE 20 在一个段的每个数据块中,最多可以insert到总容量的80%,如果要再insert数据就要增加新的块,剩余的20%是为以后update使用的

2.pctused: 如果在建表时指定 PCTUSED 40 只有已使用空间小于40%时才可能insert,也就说未使用空间必须要大于60%

3.两个参数混合使用的情况

阅读(1602) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~