分区(Partition)一直是Oracle数据库引以为傲的一项技术,正是分区的存在让Oracle高效的处理海量数据成为可能,在Oracle 11g中,分区技术在易用性和可扩展性上再次得到了增强。在10g的Oracle版本中,要对分区表做调整,尤其是对RANGE分区添加新的分区都需要DBA手动定期添加,或都使用存储过程进行管理。在11G的版本中的Interval Partition不再需要DBA去干预新分区的添加,Oracle会自动去执行这样的操作,减少了DBA的工作量。Interval Partition是Range分区的一个扩展。

1、Extended Composite Partitioning

In previous releases of Oracle, composite partitioning was limited to Range-Hash and Range-List partitioning. Oracle 11g Release 1 extends this to allow the following composite partitioning schemes:

Range-Hash (available since 8i)
Range-List (available since 9i)
Range-Range
List-Range
List-Hash
List-List

2、使用Interval Partition也有一些限制

 You can only specify one partitioning key column, and it must be of NUMBER or DATE type.
 Interval partitioning is not supported for index-organized tables.
 You cannot create a domain index on an interval-partitioned table.
 Interval partitioning is not supported at the subpartition level. ...

3、Interval Partition也可以创建复合分区

 Interval-range
 Interval-hash
 Interval-list
 

4、复合分区例子

1) Interval-list
-- Create table
--drop table ISMP.GWTRXS purge;
create table ISMP.GWTRXS
(
  GWORDERS_ID           VARCHAR2(22),
  TRXNUM                VARCHAR2(128) not null,
  TRXTYPE               VARCHAR2(4) not null,
  CHANNEL               VARCHAR2(2) not null,
  PAYMENT_TYPE          VARCHAR2(2) not null,
  PAYMODE               VARCHAR2(2) not null,
  AMOUNT                NUMBER not null,
  CURRENCY              VARCHAR2(4) not null,
  SERVICECODE           VARCHAR2(20),
  ACQUIRER_CODE         VARCHAR2(30) not null,
  ACQUIRER_NAME         VARCHAR2(400),
  ACQUIRER_MERCHANT     VARCHAR2(64) not null,
  ACQUIRER_SEQ          VARCHAR2(128),
  ACQUIRER_DATE         VARCHAR2(8),
  ACQUIRER_MSG          VARCHAR2(256),
  SUBMITDATES           VARCHAR2(20) not null,
  PAYER_IP              VARCHAR2(20),
  REFNUM                VARCHAR2(128),
  AUTHCODE              VARCHAR2(6),
  FROMACCTID            VARCHAR2(22),
  FROMACCTNUM           VARCHAR2(256) not null,
  BUYER_ID              VARCHAR2(22),
  BUYER_NAME            VARCHAR2(64),
  PAYINFO               VARCHAR2(64),
  CREATEDATE            DATE not null,
  CLOSEDATE             DATE not null,
  TRXSTS                VARCHAR2(3) not null,
  OPERS                 VARCHAR2(128),
  OPERDATE              DATE not null,
  VERSION               NUMBER not null,
  TRXDESC               VARCHAR2(100),
  ID                    VARCHAR2(22) not null,
  ACQUIRER_ID           VARCHAR2(20),
  FEE_AMOUNT            NUMBER,
  TRADE_NO              VARCHAR2(255 CHAR),
  SUCCESS_TYPE          VARCHAR2(255 CHAR),
  CHANNEL_RESPONSE      VARCHAR2(511),
  CHANNEL_RESULT        VARCHAR2(20),
  CHANNEL_RESPONSE_TIME VARCHAR2(20),
  DBTYPE                VARCHAR2(30)
)
partition by range (CREATEDATE) INTERVAL (numtodsinterval(1,'day'))
subpartition by list (DBTYPE)
SUBPARTITION TEMPLATE
(SUBPARTITION sub1 VALUES ('bailian'),
 SUBPARTITION sub2 VALUES ('yisheng'),
 SUBPARTITION sub3 VALUES ('mpayys'),
 SUBPARTITION sub4 VALUES ('yixuan'),
 SUBPARTITION sub5 VALUES ('yixuan17'),
 SUBPARTITION sub6 VALUES ('xifupay'),
 SUBPARTITION other VALUES (DEFAULT))
(partition P1 values less than (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')));
 
2)增加子分区模板
注意:新增的子分区模板,只有新的分区生成时,才会被使用到,旧的分区的子分区无法根据新的模板进行分裂,
因此,模板中要保留default分区。
ALTER table ismp.gworders SET
SUBPARTITION TEMPLATE (
SUBPARTITION sub1 VALUES ('bailian'),
 SUBPARTITION sub2 VALUES ('yisheng'),
 SUBPARTITION sub3 VALUES ('mpayys'),
 SUBPARTITION sub4 VALUES ('yixuan'),
 SUBPARTITION sub5 VALUES ('yixuan17'),
 SUBPARTITION sub6 VALUES ('xifupay'),
 SUBPARTITION sub7 VALUES ('nfooo'),
 SUBPARTITION other VALUES (DEFAULT)
);

原文:https://blog.csdn.net/jolly10/article/details/82620802

最新文章

  1. C++11 笔记
  2. 日志文件清理工具V1.1
  3. Android网络连接判断与处理
  4. CUBRID学习笔记 37 ADO.NET Schema Provider
  5. rsync+inotify实现服务器数据同步
  6. 使用另一种方式实现js中Function的调用(call/apply/bind)
  7. 关于Eclipse插件开发-----加入首选项(preferencePages)
  8. 总结: Struts2 + Spring 的线程安全问题
  9. cookie 和 HttpSession
  10. 使用passenger在Centos7部署Puma+Nginx+Ruby on Rails
  11. php中文件引入require
  12. mysql5.6 主从复制
  13. 控制结构(4) 局部化(localization)
  14. 【linux】工作中linux系统常用命令操作整理
  15. 授权普通非DBA用户可以有权限查看执行计划的方法
  16. Python 虚拟环境 pyenv、venv(pyvenv)、virtualenv之间的区别
  17. vue子传父多个值
  18. Java理论学时第六节。课后作业。
  19. POI导入excel文件2
  20. Query类型_JDBC的方法_JAVA方法_Loadrunner脚本

热门文章

  1. Python3基础 try-except-finally 的简单示例
  2. ubuntu下进程kidle_inject致使编译软件很慢
  3. Zookeeper 概念
  4. VS2017无法启动程序 操作在当前状态中是非法的
  5. spring boot 启动后执行初始化方法
  6. C#学习笔记(四):switch语句
  7. Facebook广告API系列 Business Manager
  8. easyui ---- jEasyUI-定制提示信息面板组件
  9. Linux——进程管理学习简单笔记
  10. ros 使用python代码启动launch文件