Oracle普通表基于Rowid在线重定义表分区

本文介绍了如何使用Oracle的dbms_redefinition包在线重定义一张4亿+数据的普通表为Rowid分区表。通过创建中间表、设置多通道、验证可行性、执行重定义操作、迁移关联数据、同步数据以及完成重定义等步骤,实现了数据表的高效分区,以提升查询速度。

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

公司的一张数据表数据量太大,为提高数据查询速度,对其进行在线重定义分区,网上查阅各路大神帖子,自我实验总结如下:
测试数据为一张4亿+多条数据量源表:TAB_SJ_SIGNAL_VALUE_61 ;
特点:表数据根据列 TIME 有明显的时间划分;

1--建中间表t3,手动创建分区,下面操作都是默认使用的中间表t3;
create table t3 partition by range(time)  --创建中间表t3,按时间time分区;
 (partition a1 values less than (to_date('2016/01/26','yyyy/mm/dd')) tablespace db_sj_61_v1, --分区a1
 partition a2 values less than (to_date('2016/01/27','yyyy/mm/dd')) tablespace db_sj_61_v1, --分区a2
 partition a3 values less than (to_date('2016/01/28','yyyy/mm/dd')) tablespace db_sj_61_v1,
 partition a4 values less than (to_date('2016/01/29','yyyy/mm/dd')) tablespace db_sj_61_v1,
 partition a5 values less than (maxvalue) tablespace db_sj_61_v1;
 as select * from TAB_SJ_SIGNAL_VALUE_61 where 1=2;  --表结构可以根据已有源表来直接引用;
其他说明:
  1)分区a1,时间范围是小于2016/0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值