Oracle之降低高水位线

本文介绍了Oracle从10g开始提供的Shrink命令,用于降低高水位线,该特性仅适用于自动段空间管理(ASSM)表空间。内容包括Shrink的两个阶段:数据重组和HWM调整,以及如何使用Shrink命令,包括启用行移动、执行不同类型的Shrink操作。同时提到了检查HWM的方法以及Shrink与Move的区别,并提供了在业务繁忙时的建议操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shrink方式

从10g开始,Oracle开始提供Shrink的命令,假如我们的表空间中支持自动段空间管理(ASSM),就可以使用这个特性缩小段,即降低HWM。这里需要强调一点,10g的这个新特性,仅对ASSM表空间有效,否则会报 ORA-10635: Invalid segment or tablespace type。


一、segment shrink大概分为两个阶段: 

1、数据重组(compact):通过一系列insert、delete操作,将数据尽量排列在段的前面。在这个过程中需要在表上加RX锁,即只在需要移动的行上加锁。由于涉及到rowid的改变,需要enable row movement.同时要disable基于rowid的trigger.这一过程对业务影响比较小。


2、HWM调整:第二阶段是调整HWM位置,释放空闲数据块。此过程需要在表上加X锁,会造成表上的所有DML语句阻塞。在业务特别繁忙的系统上可能造成比较大的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值