Welcome 微信登录

首页 / 数据库 / MySQL / Oracle分区表 (Partition Table) 的创建及管理

Oracle分区表 (Partition Table) 的创建及管理一、创建分区表分区表分为四类:1、范围分区表 2、列表分区表 3、哈希分区表 4、组合分区表下面分别创建四类分区表。1、范围分区表
CREATE TABLE range_example(
      range_key_column DATE,
      DATA VARCHAR2(20),
      ID integer
) PARTITION BY RANGE(range_key_column)

  PARTITION part01 VALUES LESS THAN (TO_DATE("2008-07-1 00:00:00","yyyy-mm-dd hh24:mi:ss")) TABLESPACE tbs01,
  PARTITION part02 VALUES LESS THAN (TO_DATE("2008-08-1 00:00:00","yyyy-mm-dd hh24:mi:ss")) TABLESPACE tbs02,
  PARTITION part03 VALUES LESS THAN (TO_DATE("2008-09-1 00:00:00","yyyy-mm-dd hh24:mi:ss")) TABLESPACE tbs03
);
2、列表分区表
CREATE TABLE list_example(      dname VARCHAR2(10),       DATA VARCHAR2(20)) PARTITION BY LIST(dname)(       PARTITION part01 VALUES("ME","PE","QC","RD"),  PARTITION part02 VALUES("SMT","SALE"));
3、哈希分区表
CREATE TABLE hash_example(      hash_key_column DATE,      DATA VARCHAR2(20)) PARTITION BY HASH(hash_key_cloumn)(       PARTITION part01 ,  PARTITION part02);
4、组合分区表
CREATE TABLE range_hash_example(      range_column_key DATE,      hash_column_key INT,      DATA VARCHAR2(20))PARTITION BY RANGE(range_column_key)SUBPARTITION BY HASH(hash_column_key) SUBPARTITIONS 2(   PARTITION part_1 VALUES LESS THAN (TO_DATE("2008-08-01","yyyy-mm-dd"))(        SUBPARTITION part_1_sub_1,         SUBPARTITION part_1_sub_2,        SUBPARTITION part_1_sub_3   ),   PARTITION part_2 VALUES LESS THAN (TO_DATE("2008-09-01","yyyy-mm-dd"))(        SUBPARTITION part_2_sub_1,        SUBPARTITION part_2_sub_2));
--注 subpartitions 2 并不是指定subpartition的个数一定为2,实际上每个分区的子分区个数可以不同。subpartitions 关键字的作用到底是什么?如果不指定subpartition的具体明细,则系统按照subpartitions的值指定subpartition的个数生成子分区,名称由系统定义。二、增加分区
-- range partitioned tableALTER TABLE range_example ADD PARTITION part04 VALUES LESS THAN (TO_DATE("2008-10-1 00:00:00","yyyy-mm-dd hh24:mi:ss"));--list partitioned tableALTER TABLE list_example ADD PARTITION part04 VALUES ("TE");--Adding Values for a List PartitionALTER TABLE  list_example MODIFY PARTITION part04 ADD VALUES("MIS");--Dropping Values from a List PartitionALTER TABLE  list_example MODIFY PARTITION part04 DROP VALUES("MIS");--hash partitioned tableALTER TABLE hash_example ADD PARTITION part03;--增加subpartitionALTER TABLE range_hash_example MODIFY PARTITION part_1 ADD SUBPARTITION part_1_sub_4;
注:hash partitioned table 新增partition时,现有表的中所有data都有重新计算hash值,然后重新分配到分区中。所以被重新分配的分区的 indexes需要rebuild 。
  • 1
  • 2
  • 下一页
Oracle曲线救国之调整临时表空间Oracle 日志分析工具LogMiner的安装使用相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数