oracle将1设置成01,使用ORACLE在线重定义将普通表改为分区表

本文介绍了如何使用Oracle的在线重定义功能将一张50GB的大表转换为分区表,以提高查询性能。通过创建中间表、检查是否可重定义、开始数据迁移、同步数据、复制依赖对象、结束重定义等步骤,成功实现了表的无损转换,并验证了数据一致性。
摘要由CSDN通过智能技术生成

因客户现场有一张表数据流量巨大,达到50G,查询起来较慢,遂决定进行分区表改造,测试环境进行测试,此次方法才用在线重定义方法

1.创建测试表

create table elan(id int primary key,name varchar2(32)); --表中需要定义主键,如果没有主键可以在后期添加

2.批量向表中插入数据

begin

for i in 1..100000

loop

insert into elan.elan values(i,‘x‘);

end loop;

commit;

end;

/

查看表中的数据是否插入

SQL> select count(1) from elan;

COUNT(1)

----------

100000

3.创建中间表

--此次分区才用hash分区的方式

CREATE TABLE elan_new (ID NUMBER PRIMARY KEY, name varchar2(32)) PARTITION BY hash (id)

( PARTITION PART01 TABLESPACE elan,

PARTITION PART02 TABLESPACE elan,

PARTITION PART03 TABLESPACE elan);

4.检测表是否可以执行在线重定义

QL> BEGIN

DBMS_REDEFINITION.CAN_REDEF_TABLE(‘ELAN‘,‘ELAN‘,DBMS_REDEFINITION.CONS_USE_PK);

END;

/ 2 3 4

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值