[Oracle] 在线段收缩(Online Segment Shrink)

Oracle的在线段收缩(Online Segment Shrink)是指在线整理段空间里的碎片,它有以下几个特点:在线,即在段压缩过程中,DML几乎不受影响(只有在结束前很短的时间内,DML会被阻塞)in-place的操作,不需要额外的空间收缩完成后索引依然可用它不但能够收回高水位线以上未使用的空间,还可以收回高水位线下为使用的空间,它的主要步骤是:压缩段空间调整高水
摘要由CSDN通过智能技术生成

Oracle的在线段收缩(Online Segment Shrink)是指在线整理段空间里的碎片,它有以下几个特点:

  • 在线,即在段压缩过程中,DML几乎不受影响(只有在结束前很短的时间内,DML会被阻塞)
  • in-place的操作,不需要额外的空间
  • 收缩完成后索引依然可用
它不但能够收回高水位线以上未使用的空间,还可以收回高水位线下为使用的空间,它的主要步骤是:
  1. 压缩段空间
  2. 调整高水位线
  3. 释放收回的空间
使用Shrink有两个前提条件:
  1. 表必须启用row movement
  2. 表段所在表空间的段空间管理(segment space management)必须为auto

在线段收缩的语法如下:
alter table/index/materialized view object_name shrink space [cascade] [compact];
  • cascade:是指压缩所有依赖的对象,比如压缩表语句加上cascade,表上所有的索引都会被压缩
  • compact:把压缩过程分为两个阶段:第一个阶段的语句带compact,压缩段空间,在这个过程中需要在表上加RX锁,即只在需要移动的行上加锁。由于涉及到rowid的改变,需要enable row movement.
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值