因客户现场有一张表数据流量巨大,达到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
<