首页 > 代码库 > 分区表转换
分区表转换
20160822-分区表转换-整理
登录oracle上的scp用户
conn scp
查看相关表T_IMAGE_DATA的数据
select * from T_IMAGE_DATA t
order by time
select count(*) from T_IMAGE_DATA t
execute dbms_stats.gather_table_stats(‘SCP‘, ‘T_IMAGE_DATA‘, cascade => true);
analyze table T_IMAGE_DATA compute statistics;
select * from user_tables where table_name = ‘T_IMAGE_DATA‘;
select * from user_tab_partitions where table_name = ‘T_IMAGE_DATA‘;
select count(*) from T_IMAGE_DATA;
select * from user_indexes where table_name = ‘T_IMAGE_DATA‘;
select * from user_objects
select count(*) from T_IMAGE_DATA_partion partition (PART1);
备份表T_IMAGE_DATA
-- Create table
create table T_IMAGE_DATA_bak_20160819
as select * from t_image_data
检查备份表的数据
select count(*) from T_IMAGE_DATA_BAK_20160819 t
select count(*) from T_IMAGE_DATA t
清除之前测试的数据
drop table t_image_data_p purge
drop table t_image_data_p_old purge
drop table t_image_data_partion purge
创建临时分区表T_IMAGE_DATA_partion
create table T_IMAGE_DATA_partion
PARTITION BY RANGE (time)
INTERVAL ( NUMTOYMINTERVAL (1, ‘MONTH‘) )
(PARTITION part1
VALUES LESS THAN (TO_DATE (‘07/01/2016‘, ‘MM/DD/YYYY‘)))
as select * from t_image_data;
查看临时建好的表 T_IMAGE_DATA_PARTION 的数据
select * from T_IMAGE_DATA_PARTION t
order by time
select count(*) from T_IMAGE_DATA_PARTION t
execute dbms_stats.gather_table_stats(‘SCP‘, ‘T_IMAGE_DATA_PARTION‘, cascade => true);
analyze table T_IMAGE_DATA_partion compute statistics;
select * from user_tables where table_name = ‘T_IMAGE_DATA_PARTION‘;
select * from user_tab_partitions where table_name = ‘T_IMAGE_DATA_PARTION‘;
select count(*) from T_IMAGE_DATA_partion;
select count(*) from T_IMAGE_DATA_partion partition (PART1);
重命名表
Connected to Oracle Database 12c Enterprise Edition Release 12.1.0.2.0
Connected as scp@SCPDB01
SQL> RENAME T_IMAGE_DATA TO T_IMAGE_DATA_OLD;
Table renamed
SQL> rename T_IMAGE_DATA_PARTION to T_IMAGE_DATA;
Table renamed
SQL>
验证
select partitioned from user_tables where table_name = ‘T_IMAGE_DATA_PARTION‘;
select partition_name from user_tab_partitions where table_name = ‘T_IMAGE_DATA_PARTION‘;
select count(*) from SCP.T_IMAGE_DATA_partion;
select count(*) from SCP.T_IMAGE_DATA_partion partition (p4);
rename表,恢复T表的相关应用
RENAME T_IMAGE_DATA_P TO T_IMAGE_DATA_P_OLD;
rename T_IMAGE_DATA_PARTION to T_IMAGE_DATA_P;
RENAME T_IMAGE_DATA TO T_IMAGE_DATA_OLD;
rename T_IMAGE_DATA_PARTION to T_IMAGE_DATA
-- Add comments to the columns
comment on column T_IMAGE_DATA.image_id
is ‘影像ID‘;
comment on column T_IMAGE_DATA.data
is ‘影像数据‘;
comment on column T_IMAGE_DATA.time
is ‘时间‘;
原表创建语句
-- Create table
create table SCP.T_IMAGE_DATA
(
image_id NUMBER(15),
data BLOB,
time DATE
)
tablespace TBS_GMSCP
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
-- Add comments to the columns
comment on column SCP.T_IMAGE_DATA.image_id
is ‘影像ID‘;
comment on column SCP.T_IMAGE_DATA.data
is ‘影像数据‘;
comment on column SCP.T_IMAGE_DATA.time
is ‘时间‘;
相关参考:
Oracle普通表—>分区表转换(9亿数据量)
http://www.linuxidc.com/Linux/2015-04/115720.htm
Oracle在线重定义DBMS_REDEFINITION 普通表—>分区表
http://www.linuxidc.com/Linux/2015-04/115719.htm
Oracle技术之11g分区表按时间自动创建
http://www.educity.cn/shujuku/1178190.html
Oracle回收站使用全攻略
http://www.csdn.net/article/2012-12-05/2812471-Oracle-Recycle-Bin
带有clob字段的自动分区表
http://blog.csdn.net/wll_1017/article/details/9080113
oracle非分区表,转分区表
http://blog.csdn.net/leshjmail/article/details/6524519
带有clob字段的自动分区表
http://blog.csdn.net/hijiankang/article/details/9173877/
Oracle分区表常用命令
http://www.cnblogs.com/chuncn/archive/2009/04/15/1416458.html
分区表转换