利用在线重定义的方法实现表碎片的清理

本文介绍了如何利用在线重定义的方法实现表碎片的清理,该方法不会影响表的正常使用,也不需要锁表。步骤包括备份统计信息表、检查重定义可行性、创建临时表、开始重定义、复制依赖、注册对象索引等。对于未复制的索引,需在后续步骤中处理。详细流程可参考相关官网链接。

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

优点:不影响表的正常使用,不锁表等情况。

步骤如下:

1.备份定义表的统计信息表,保障性能补损耗

创建备份信息表(删除delete,导入import 类似)

begin
dbms_stats.create_stat_table(
ownname =>'SCOTT',stattab =>'EMP2_STAT');
end;

备份收集信息

begin
dbms_stats.export_table_stats(ownname =>'SCOTT',
tabname =>'EMP2',
stattab =>'EMP2_STAT',
statown =>'SCOTT',
cascade =>TRUE,
statid =>'EMP2_REDEF');
END;

2.检查是否可以重定义

exec dbms_redefinition.can_redef_table('SCOTT','EMP2')

3.创建临时表(索引可在步骤四创建)

create table emp2_tmp(id number  primary key);

4.开始重定义

begin
dbms_redefinition.start_redef_table(uname 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值