rowid会不会改变(3) online shrink

从前面的实验可以看出如果对于表进行delete,块上的物理地址并没有改变,而是等待再次被利用,但如果新插入的记录比空出的空间大或者是没有发生插入,那么块上就会有空间空闲,可以看成是段上的碎片。

10g开始可以使用online shrink来回收这部分碎片,这个过程会发生行的位置的改变,行的位置会迁移到新的位置,所以rowid就会改变了,但online shrink是不会使索引失效的,会重新维护索引中的rowid信息

回收碎片的好处:

1 更好的缓存利用率。因为回收后,表占用的块数可能减少了,读入缓存的块就减少了,更好的利用缓存的空间

2 全表扫描的时间短了。同样,回收后表占用的块减少,全表扫描肯定快。

需要注意的是:

1 online shrink回收碎片的段必须是自动段空间管理的表空间上的段

2 不是所有的段都可以online shrink,比如基于物化视图rowid的表,创建了函数索引的表

3 必须激活row movement ,使用ALTER TABLE ... ENABLE ROW MOVEMENT

         两个参数:

         ALTER TABLE employees SHRINK SPACE CASCADE;

         CASCADE参数可以在进行online shrink时将所有关联的段都回收碎片。比如回收一个表的碎片,将回收该表上建立的索引所在段的碎片

        ALTER TABLE employees SHRINK SPACE COMPACT;

COMPACT参数可以将online shrink划分为两个阶段,回收段上的空间但推迟重置高水标记。使用这个参数主要考虑到在online shrink期间可能发生长查询,而该长查询需要访问将被整理的块

目前没有安装10g,暂时没有实验,后续补充

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22111412/viewspace-613623/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22111412/viewspace-613623/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值