`
仁生之狼
  • 浏览: 42823 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

oracle分区表操作

 
阅读更多
在Oracle中分区表 分为好几种的(范围分区,散列分区,子分区,列表分区,索引分区)
[范围分区]
create table RangeTable(
   id int primary key,
   name varchar(20),
   grade int
)
partition by rang(grade)
(
   partition part1 values less then(50) tablespace Part1_tb,
   partition part2 values less then(MAXVALUE) tablespace Part2_tb
);

如果grade的值小于50的话 就把记录放到名为part1的分区当中,part1分区将被存储在Part1_tb表空间中
其他的就放在part2中 MAXVALUE是oracle的关键字 表示最大值
[散列分区]
create table HashTable(
   id int primary key,
   name varchar(20),
   grade int
)

/*有两种方式,1就是指定分区数目和所使用的表空间,2指定以命名的分区*/
partition by hash(grade)
partitions 10 -- 指定分区的数目
store in(Part1_tb,Part2_tb,Part3_tb) --如果指定的分区数目比表空间多,分区会以循环方式分配到表空间
partition by rang(grade)--这种方式就是 指定以命名的分区
(
 partition part1 tablespace Part1_tb,
 partition part2 tablespace Part2_tb
);

[子分区]即是分区的分区
create table ChildTable(
  id int primary key,
  name varchar(20),
  grade int
)
partition by rang(grade)
subpartition by hash(grade)
partitions 5
(
  partition part1 values less then(30) tablespace Part1_tb,
  partition part2 values less then(60) tablespace Part2_tb,
  partition part3 values less then(MAXVALUE) tablespace Part3_tb
);

[列表分区]告诉oracle所有可能的值
create table ListTable(
 id int primary key,
 name varchar(20),
 area varchar(10)
)
partition by list(area)
( 
 partition part1 values('guangdong','beijing') tablespace Part1_tb,
 partition part2 values('shanghai','nanjing') tablespace Part2_tb
);

[索引分区]索引也可以按照和表进行分区时使用的相同的值范围来分区
create index IndexTable_index
on IndexTable(name)
local
(
 partition part1 tablespace Part1_tb,
 partition part2 tablespace Part2_tb
)
--local 告诉oracle表 IndexTable的每一个分区建立一个独立的索引
create index IndexTable_index
on IndexTable(name)
global;

--global为全局索引 全局索引可以包含多个分区的值 局部索引比全局索引容易管理,而全局索引比较快
注意:不能为散列分区 或者 子分区创建全局索引
查询某一个表分区
select * from table partition(part1);

分区维护:(只对范围分区)
(1)、增加一个分区:分区范围只能往上增,不能增加一个少于原有的分区:
alter table tablename add partition new_partitionname values less than(maxvalue)

(2)、合并/拆分分区:(合并后的分区必须指下最后一个大value的分区)
alter table tablename merge partitions partitionname1,partitionname2 into partition partitionname2; 
alter table tablename split partition partitionname1 at (xx) into ( partition newpartition1 ,partition newpartition2) ; 

注意:xx为分割点
(3)、删除一个分区:
alter table niegc_part drop partition partitionname;

(4)将分区改名
alter table table_name rename Partition partition_name to partition_name

(5)将分区改表空间
alter table table_name move partition_name
tablespace tablespace_name nologging

(6)查询特定分区
select count(*) from table_name partition (partition_name);

(7)添加数据
insert into table_name select * from table_name partition (partition_name) 

(8)分区表的导出   
userid=USER/PWD
buffer=102400 
tables=table_name:partition_name, 
file=E:exp_paraxxx.dmp
log=E:exp_paraxxx.log

(9)技巧:删除表中一个字段
alter table table_name set unused column column_name;

(10)加一个字段
alter table table_name add column_name number(1); 

六、总结:
  分区表是将大表的数据分成称为分区的许多小的子集,9i提供四种分区方法:列表分区,范围分区,哈希分区和混合分区;
  • 范围分区是根椐分区键的不同取值范围来划分子集的,关键字RANGE, VALUES LESS THAN;
  • 列表分区是根椐分区键的一些离散的取值来划分子集的,关键字LIST, VALUES;
  • 哈希分区是应用哈希算法将分区键对应到某个子集中去,关键字HASH, PARTITIONS;
  • 混合分区只能有两层,第一层是范围分区,第二层可以是列表分区或者哈希分区;
分享到:
评论

相关推荐

    ORACLE分区表操作大全

    ORACLE分区表操作大全 ORACLE分区表操作大全

    Oracle数据库分区表操作方法

    Oracle数据库分区表操作方法Oracle数据库分区表操作方法

    oracle普通表转化为分区表的方法

    主要介绍了oracle普通表转化为分区表的方法,官方给出了四种操作方法,本文主要对第四种方法进行详细分析,需要的朋友可以参考下。

    ORACLE分区表的概念及操作

    1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作

    Oracle 分区表 分区索引 索引分区详解

    虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。

    Oracle表分区详解(优缺点)

    Oracle 表分区技术详解: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作.

    oracle数据库表分区实例

    oracle 数据库的表分区操作实例,适合学习操作对表进行分区。

    ORACLE大表分区

    -- 第一次分区尽量在数据库闲时操作,这样更能保证分区表的数据一致性; -- 通常使用的现有大表的分区方法:A.使用RENAME分区 B.使用交换分区 C.使用联机重定义 只有C方案才能保证数据的完全一致性; -- 但是经过测试...

    Oracle数据库中分区表的操作方法详解

    在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十到几百 GB,有的甚至...在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用。

    ORACLE-分区表的用法

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

    oracle自动建立表分区脚本

    oracle自动建立表分区脚本 适合oracle数据库dba使用 包含详细的操作说明

    oracle表空间表分区详解及oracle表分区查询使用方法

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

    ORACLE中查找定位表最后DML操作的时间小结

    在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析、总结一下。 1:使用ORA_ROWSCN伪列获取表最后的DML时间  ORA_ROWSCN伪列是Oracle 10g开始...

    oracle 分区技术-大批量数据操作

    当分区表建立时,记录基于分区字段值被存储到相应分区。 分区字段值可以修改。(row movement enabled) 分区可以存储在不同的表空间 分区可以有不同的物理存储参数 分区支持IOT表,对象表,LOB字段,varrays等

    Oracle甲骨文原厂分区表培训教程-详细讲解

    此外,该教程还包含了丰富的图文资料和视频教程,让读者可以更加直观地了解分区表的相关概念和操作方法。总之,如果你是一位Oracle数据库的爱好者或者从事相关工作,这份教程将会是你不可或缺的学习资料之一。

    Oracle+分区表++总结

    Oracle+分区表++总结 一. 分区表理论知识 二. 普通表转分区表方法 三. 分区表的其他操作

    Oracle分区表(Partition Table)使用详解

    本课程详细介绍了Oracle数据库的分区表机制、分区表应用场景、分区表与分区索引类型/创建/维护操作、分区裁剪等,结合大量的案例程序,对Oracle分区表的使用进行了详细的分析讲解。

    oracle建分区表

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

Global site tag (gtag.js) - Google Analytics