Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103782755
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-30 18:32:07

关于pctincrease与空间碎片回收的几点看法
1.PCTINCREASE>0 的时候SMON 会自动合并表空间中的碎片,等于0的时候只能手工回收
2.PCTINCREASE>0 造成extent不一致甚至可能因为几何增长的缘故造成一个next需要的空间太大
3.固定的next且较小可能造成表的存储段太离散,对查询很不利
所以,碎片能合并(回收)但是并不等于能利用:
而造成碎片的原因是因为表的存储的段离散而extent不一致所造成的
一旦PCTINCREASE>0 ,如果next较多会造成很多问题
就算能合并碎片,但是这些空间也不能很好的利用,甚至很可能利用率比较低
很简单的一个例子:
3+4=7 这是smon合并相临碎片
但是这时由于PCTINCREASE>0 的原因,有可能的话,next extent已经为5了
那么,7-5=2这部分就几乎永远浪费了(除非重建表空间)
尽量保持在表空间所有表的next一致,然后PCTINCREASE=0
这样,就算smon不自动合并临近的碎片,这些碎片也能重复利用
如果能定期的手工合并,那当然也是可以的
顺带说点题外话:
这里所说的碎片完全是指表truncate或者drop后释放出来的空间
不是delete后留下来的空间,smon是不能解决delete所浪费的空间的

Pctincrease不只是针对表空间的,一样可以对表进行设置
不过一般来说,对表设置为0。目前我还没有发现对表设置为非0值有任何好处。

原文:http://yygf.blog.ccidnet.com/blog-htm-itemid-117659-do-showone-type-blog-uid-40183.html

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