oracle 分区表的维护

1:添加分区:

ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD'));

SALES表添加了一个P3分区
ALTER TABLE 表名 ADD PARTITION 分区名 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD'));

  给分区添加子分区:

ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES('COMPLETE');

2:删除分区

ALTER TABLE SALES DROP PARTITION P3;

 删除子分区

ALTER TABLE SALES DROP SUBPARTITION P4SUB1;

3:截断分区

ALTER TABLE SALES TRUNCATE PARTITION P2;

 截断子分区

ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2;

4:合并分区

  合并分区是将相邻的分区合并成一个分区,结果分区将采用较高分区的界限,值得注意的是,不能将分区合并到界限较低的分区

ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO PARTITION P2;

将表的分区p1,p2合并到p2中
ALTER TABLE 表名 MERGE PARTITIONS P1,P2 INTO PARTITION P2;

5:拆分分区

   拆分分区将一个分区拆分两个新分区,拆分后原来分区不再存在。注意不能对HASH类型的分区进行拆分

ALTER TABLE SALES SBLIT PARTITION P2 AT(TO_DATE('2003-02-01','YYYY-MM-DD')) INTO (PARTITION P21,PARTITION P22);

6:接合分区(coalesca)

    结合分区是将散列分区中的数据接合到其它分区中,当散列分区中的数据比较大时,可以增加散列分区, 然后进行接合,值得注意的是,接合分区只能用于散列分区中

ALTER TABLE SALES COALESCA PARTITION;

7:重命名表分区

将P21更改为P2
ALTER TABLE SALES RENAME PARTITION P21 TO P2;

8:分区查询

   跨分区查询

select sum( *) from (select count(*) cn from t_table_SS PARTITION (P200709_1) union all select count(*) cn from t_table_SS PARTITION (P200709_2)
);

 9:查询表上有多少分区

SELECT * FROM useR_TAB_PARTITIONS WHERE TABLE_NAME='tableName'

 10:查询分区所在的表空间

select table_name,partition_name,tablespace_name  from user_tab_partitions;
原文地址:https://www.cnblogs.com/feiyun126/p/3160622.html