时间范围分区拆分
create table emp (
id number(6) not null,
hire_date date not null)
partition by range(hire_date)
(partition p_1998 values less than (to_date('1998-12-31','YYYY-MM-DD')),
partition p_1999 values less than (to_date('1999-12-31','YYYY-MM-DD')),
partition p_default values less than (maxvalue)
);

insert into emp values(10,to_date('1999-5-20','YYYY-MM-DD'));
insert into emp values(20,to_date('1999-8-10','YYYY-MM-DD'));

SQL> select count(*) from emp partition(p_1999);
  COUNT(*)
----------
         2
将p_1999分区拆分成两个分区
    
SQL> ALTER TABLE emp SPLIT PARTITION p_1999
  2     AT (to_date('1999-07-01','YYYY-MM-DD'))
  3     INTO (PARTITION p_1999_01, PARTITION p_1999_02);

表已更改。

SQL> select count(*) from emp partition(p_1999_01);

COUNT(*)
----------
         1

SQL> select count(*) from emp partition(p_1999_02);

COUNT(*)
----------
         1

将p_default分区拆分成两个分区

SQL> insert into emp values(30,to_date('2000-5-27','YYYY-MM-DD'));

已创建 1 行。

SQL> insert into emp values(40,to_date('2001-10-02','YYYY-MM-DD'));

已创建 1 行。

SQL> select count(*) from emp partition(p_default);

COUNT(*)
----------
         2

SQL> ALTER TABLE emp SPLIT PARTITION p_default
  2         AT (to_date('2000-12-31','YYYY-MM-DD'))
  3         INTO (PARTITION p_2000, PARTITION p_default);

表已更改。

SQL> select count(*) from emp partition(p_default);

COUNT(*)
----------
         1

SQL> select count(*) from emp partition(p_2000);

COUNT(*)
----------
         1

SQL> select * from emp partition(p_default);

ID HIRE_DATE
---------- -------------------
        40 2001-10-02 00:00:00

SQL> select * from emp partition(p_2000);

ID HIRE_DATE
---------- -------------------
        30 2000-05-27 00:00:00

LIST分区拆分
SQL> create table dept (
  2  id number(6) not null,
  3  area varchar2(15) not null)
  4  partition by list(area)
  5  (
  6     PARTITION asia VALUES ('CHINA', 'THAILAND'),
  7     PARTITION europe VALUES ('GERMANY', 'ITALY', 'SWITZERLAND'),
  8     PARTITION west VALUES ('AMERICA'),
  9     PARTITION east VALUES ('INDIA'),
 10     PARTITION rest VALUES (DEFAULT));

表已创建。

SQL> insert into dept values(10,'MEXICO');
已创建 1 行。

SQL> insert into dept values(20,'COLOMBIA');
已创建 1 行。

SQL> select count(*) from dept partition(rest);

COUNT(*)
----------
         2

SQL> ALTER TABLE dept SPLIT PARTITION rest
  2     VALUES ('MEXICO', 'COLOMBIA')
  3     INTO (PARTITION south, PARTITION rest);
表已更改。

SQL> select count(*) from dept partition(rest);

COUNT(*)
----------
         0

SQL> select count(*) from dept partition(south);

COUNT(*)
----------
         2

分区合并

SQL> SELECT table_name,partition_name  FROM USER_tab_partitions where table_name='EMP';

TABLE_NAME                     PARTITION_NAME
------------------------------ ------------------------------
EMP                            P_1998
EMP                            P_1999_01
EMP                            P_1999_02
EMP                            P_2000
EMP                            P_DEFAULT

SQL> ALTER TABLE emp
  2         MERGE PARTITIONS P_1999_01, P_1999_02 INTO PARTITION P_1999;

表已更改。

SQL> SELECT table_name,partition_name  FROM USER_tab_partitions where table_name='EMP';

TABLE_NAME                     PARTITION_NAME
------------------------------ ------------------------------
EMP                            P_1998
EMP                            P_1999
EMP                            P_2000
EMP                            P_DEFAULT

SQL> SELECT table_name,partition_name  FROM USER_tab_partitions where table_name='DEPT';

TABLE_NAME                     PARTITION_NAME
------------------------------ ------------------------------
DEPT                           ASIA
DEPT                           EUROPE
DEPT                           WEST
DEPT                           EAST
DEPT                           SOUTH
DEPT                           REST
已选择6行。

SQL> ALTER TABLE dept
  2     MERGE PARTITIONS south, rest INTO PARTITION rest;
表已更改。

SQL> select count(*) from dept partition(rest);

COUNT(*)
----------
         2

Oracle 11g 分区拆分与合并的更多相关文章

  1. oracle 11g 如何创建、修改、删除list-list组合分区

    Oracle11g在分区方面做了很大的提高,不但新增了4种复合分区类型,还增加了虚拟列分区.系统分区.INTERVAL分区等功能. 9i开始,Oracle就包括了2种复合分区,RANGE-HASH和R ...

  2. Oracle 11g新特性虚拟列分区

    如今有个需求:一个单据表要依照月份来分区.假设是在Oracle 10g上,仅仅能再加一个字段. 在Oracle 11g以后就不一样了.能够用虚拟列处理. SQL> select * from v ...

  3. oracle 11g 分区表创建(自动按年、月、日分区)

    前言:工作中有一张表一年会增长100多万的数据,量虽然不大,可是表字段多,所以一年下来也会达到 1G,而且只增不改,故考虑使用分区表来提高查询性能,提高维护性. oracle 11g 支持自动分区,不 ...

  4. Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 【Interval】 分区属性成了【N】

    如题: Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 [Interval] 分区属性成了[N] 谨记 ...

  5. oracle表分区以及普表转分区表(转)

    概述 Oracle的表分区功能通过改善可管理性.性能和可用性,从而为各式应用程序带来了极大的好处.通常,分区可以使某些查询以及维护操作的性能大大提高.此外,分区还可以极大简化常见的管理任务,分区是构建 ...

  6. Oracle 11g新特性

    文章转自网络 Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(I ...

  7. oracle表分区详解

    原文来自:http://www.cnblogs.com/leiOOlei/archive/2012/06/08/2541306.html oracle表分区详解 从以下几个方面来整理关于分区表的概念及 ...

  8. Oracle 表分区

    从以下几个方面来整理关于分区表的概念及操作: 表空间及分区表的概念 表分区的具体作用 表分区的优缺点 表分区的几种类型及操作方法 对表分区的维护性操作 1.表空间及分区表的概念 表空间: 是一个或多个 ...

  9. oracle表空间表分区详解及oracle表分区查询使用方法(转+整理)

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

随机推荐

  1. [置顶] 解决EXTJS文本框长度验证在ORACLE数据库下不正确的问题

    由于ORACLE数据库里面一个汉字和符号占2 个字节,数字和英文占1个字节,所以用EXTJS的文本框MaxLenght去限制输入的长度是不正确的,因为EXTJS只限制了输入的字数量,而不是字节数量. ...

  2. The YubiKey -- COMPARISON OF VERSIONS

    COMPARISON OF YUBIKEY VERSIONS   BASICSTANDARD & NANO BASICEDGE & EDGE-N PREMIUMNEO & NE ...

  3. Android - Mount a Samba share

    Mount Manager, Cifs manager :Manage your CIFS/NFS network shares was working, but the command from t ...

  4. NAS(Network Attached Storage:网络附属存储)

    NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为"网络存储器".它是一种专用数据存储服务器. ...

  5. Android字体简述

    Android是一个典型的Linux内核的操作系统.在Android系统中,主要有DroidSans和DroidSerif两大字体阵营,从名字就可以看出来,前者是无衬线字体,后者是衬线字体.具体来说, ...

  6. 使用注册表优化终端、编辑器的中英字体混合显示,如「Consolas + 雅黑」「Monaco + 雅黑」

    在终端.cmd.编辑器中偶尔会有中文字符出现,Windows下默认的点阵字体「宋体」和等宽英文字符放在一起非常违和.一个解决方法是下载混合字体,比如「Consolas + YAHEI hybrid」, ...

  7. 在gdb将所有线程的堆栈输出到文件中去

    http://m.blog.csdn.net/blog/lantianjialiang/40111253

  8. 张明楷:案件事实认定方法的七点注意 z

    作者|张明楷 来源|<法学杂志> 大体而言,定罪是一个三段论的推理过程.刑法规范是大前提,案件事实是小前提,如果二者相符合,便可以作出相应的判决.具体地说,法官必须把应当判决的.具体的个案 ...

  9. 使用线程安全的 MSWeakTimer ,它不会对目标进行retain操作,避免循环引用

    MSWeakTimer 简易翻译:该timer没有runloop概念,线程安全,没有循环引用现象. https://github.com/mindsnacks/MSWeakTimer Descript ...

  10. [翻译] 如何学习Cocoa

    [文章原地址]http://funwithobjc.tumblr.com/个人翻译,难免会有错误,请各位看官海涵,翻译在末尾本人将在文章的部分地方添加注释,并根据需求增减文章内容,在此对原作者辛勤劳作 ...