Oracle数据库下的大数据表做分区以提高数据读取效率

   PLSQL里操作,直接上代码:

--目的:用表分区转换大表数据,演示中只是用5000条数据; 
--建表T 
create table t(id number,name varchar2(10)); 
insert into t select rownum+4,'1,2,3,4' from dual connect by rownum<=5000; commit; 
select count(1) from t ;   

--创建表空间 
create tablespace ts_1 datafile 'E:\oracle\product\10.2.0\oradata\orcl\ts_1.dbf' size 50m reuse; 
create tablespace ts_2 datafile 'E:\oracle\product\10.2.0\oradata\orcl\ts_2.dbf' size 50m reuse; 
create tablespace ts_3 datafile 'E:\oracle\product\10.2.0\oradata\orcl\ts_3.dbf' size 50m reuse;  

--创建新表及分区 
create table t_new partition by range(id)( 
partition p1 values less than (2000) tablespace ts_1, 
partition p2 values less than (4000) tablespace ts_2, 
partition p3 values less than (maxvalue) tablespace ts_3) as 
select * from t;  

--删除老表并更换名字 
truncate table t; 
drop table t; 
alter table t_new rename to t;  

--检查各分区的数据 
select count(*) from t partition (p1); 
select count(*) from t partition (p2); 
select count(*) from t partition (p3); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值