Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 分区交换-归档数据

Oracle交换分区的操作步骤如下: 1. 创建分区表t1,假设有2个分区,P1,P2.
2. 创建基表t11存放P1规则的数据。
3. 创建基表t12 存放P2规则的数据。
4. 用基表t11和分区表T1的P1分区交换。 把表t11的数据放到到P1分区
5. 用基表t12 和分区表T1p2 分区交换。 把表t12的数据存放到P2分区。
 ----1.未分区表和分区表中一个分区交换
 create table t1
 (
 sid int not null primary key,
 sname  varchar2(50)
 )
 PARTITION BY range(sid)
 ( PARTITION p1 VALUES LESS THAN (5000) tablespace test,
 PARTITION p2 VALUES LESS THAN (10000) tablespace test,
 PARTITION p3  VALUES LESS THAN (maxvalue) tablespace test
 ) tablespace test;
  SQL> select count(*) from t1;
   COUNT(*)
 ----------
          0
   create table t11
 (
 sid int not null primary key,
 sname  varchar2(50)
 ) tablespace test;
  create table t12
 (
 sid int not null primary key,
 sname  varchar2(50)
 ) tablespace test;
  create table t13
 (
 sid int not null primary key,
 sname  varchar2(50)
 ) tablespace test;
 --循环导入数据
 declare
       maxrecords constant int:=4999;
       i int :=1;
   begin
       for i in 1..maxrecords loop
         insert into t11 values(i,"ocpyang");
       end loop;
   dbms_output.put_line(" 成功录入数据! ");
   commit;
   end;
 /
  declare
       maxrecords constant int:=9999;
       i int :=5000;
   begin
       for i in 5000..maxrecords loop
         insert into t12 values(i,"ocpyang");
       end loop;
   dbms_output.put_line(" 成功录入数据! ");
   commit;
   end;
 /
   declare
       maxrecords constant int:=70000;
       i int :=10000;
   begin
       for i in 10000..maxrecords loop
         insert into t13 values(i,"ocpyang");
       end loop;
   dbms_output.put_line(" 成功录入数据! ");
   commit;
   end;
 /
 commit;
   SQL> select count(*) from t11;
   COUNT(*)
 ----------
     4999
 SQL> select count(*) from t12;
   COUNT(*)
 ----------
     5000
 SQL> select count(*) from t13;
   COUNT(*)
 ----------
      60001
   --交换分区
  alter table t1 exchange partition p1 with table t11;
  SQL> select count(*) from t11; --基表t11数据为0
   COUNT(*)
 ----------
          0
 SQL> select count(*) from t1 partition (p1);  --分区表的P1分区数据位基表t11的数据
   COUNT(*)
 ----------
     4999  alter table t1 exchange partition p2 with table t12;
 select count(*) from t12;
 select count(*) from t1 partition (p2);   alter table t1 exchange partition p3 with table t13;
 select count(*) from t13;
 select count(*) from t1 partition (p3); 
  • 1
  • 2
  • 3
  • 4
  • 下一页
Oracle- insert性能优化MongoDB 副本集搭建实现读写分享相关资讯      Oracle归档  Oracle分区 
  • Oracle 11g维护分区(七)——  (08/06/2015 15:38:09)
  • Oracle 11g维护分区(二)——  (07/20/2015 13:38:04)
  • Oracle 11g维护分区概述  (07/17/2015 11:50:15)
  • Oracle 11g维护分区(三)——  (07/23/2015 16:36:30)
  • Oracle 11g维护分区(一)——  (07/17/2015 12:50:26)
  • Oracle DB 分区特性概述 Overview   (01/20/2015 20:05:10)
本文评论 查看全部评论 (0)
表情: 姓名: 字数