`
Virgo_S
  • 浏览: 1151867 次
  • 性别: 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系统全面学习教程很详细的讲解.docx

    Oracle 系统全面学习教程很详细的讲解 本资源是 Oracle 系统的全面学习教程,旨在为读者提供详细的 Oracle 学习手册。该手册涵盖了 Oracle 的基础知识、OLAP 与 OLTP 介绍、索引详解、并行技术等多方面的内容。 ...

    杨廷琨 - 从分区到Sharding:数据库核心业务表的分区设计

    1. **分区概念**:在Oracle数据库中,分区是将一张大表的数据拆分成若干小的更易于管理的部分,每个部分被称为一个分区。这种技术可以让数据库管理员对表进行更细粒度的管理,同时提高大型表的访问效率和可维护性。 ...

    oracle8 UML对像建模设计

    Oracle 8 UML对象建模设计是一门深入探讨如何利用UML(统一建模语言)在Oracle数据库系统中进行对象建模的专业知识。...《Oracle 8 UML对象建模设计》这本书很可能会详细讲解这些概念,并提供实例来指导读者实践。

    oracle数据库对象管理笔记.doc

    本笔记将为您详细讲解 Oracle 数据库对象管理的基础知识和概念。 一、数据库对象 Oracle 数据库对象是数据库中的一种基本单元,包括表、索引、存储过程、函数等。这些对象都是数据库中的一部分,并且它们之间存在...

    超详细Oracle教程(带目录).pdf

    ### 超详细Oracle教程知识点总结 #### 一、引言 - **SUN与Oracle合并背景**:2009年,Oracle宣布以74亿美元收购SUN Microsystems,这一举措被视为Oracle进军云计算领域的关键步骤。 - **云计算重要性**:随着...

    oracle培训老师笔记

    3. **表空间与数据文件**:讲解Oracle如何组织存储数据,包括表空间的创建、扩展、收缩,数据文件的管理,以及临时表空间和还原段的用途。 4. **索引与查询优化**:索引的类型(B树、位图、哈希)、创建和管理,...

    09 oracle的索引 PPT

    本篇将详细讲解Oracle数据库中的索引及其重要性。 一、索引的概念与类型 1. 索引是一种特殊的数据结构,它为数据库表中的列提供快速访问路径。就像书的目录一样,通过索引,数据库系统可以迅速定位到所需的数据行,...

    jsp+oracle

    它支持SQL标准,并提供了丰富的特性,如PL/SQL编程语言、触发器、存储过程、索引、分区表、物化视图等。在JSP应用中,Oracle常用于存储和检索应用程序的数据。 【描述】提到的“jsp+oracle书”涵盖了14个章节,这...

    超详细ORACLE培训实例

    - **Oracle体系结构**:详细介绍Oracle数据库的逻辑与物理结构,包括表空间、段、区间等概念。 - **Oracle管理工具**:介绍Oracle Enterprise Manager等管理工具的使用方法。 #### 第三章 查询基础 - **SQL基础...

    Oracle_10g数据仓库实践

    综上所述,《Oracle 10g数据仓库实践》这本书详细地介绍了Oracle 10g数据仓库的相关技术和应用案例,覆盖了从概念介绍到实际部署的各个方面,对于希望深入了解Oracle 10g数据仓库技术的人来说是非常有价值的参考资料...

    Oracle Pro*C 程序开发

    - **内容组织**:文档首先介绍了Oracle Pro*C/C++的基本概念,随后深入讲解了其在不同Oracle版本中的新特性,最后通过示例程序详细阐述了如何使用该工具进行实际的数据库开发工作。 - **约定**:文档中使用了一些...

    Linux服务器环境搭建(设置)[汇编].pdf

    本文讲解了 Linux 服务器端开发环境搭建的详细步骤,包括 Java 开发环境的安装和配置、Tomcat 服务器安装和配置、基于源码的 MySQL 数据库安装、Oracle 数据库的安装、Apache 服务器的安装和配置、PHP 环境安装和...

    MySQL_PT.rar_MYSQL_MYSQL ppt_mysql 培训ppt_mysql教程

    11. **性能优化**:探讨查询优化、索引设计、表分区等提升数据库性能的技巧。 12. **安全设置**:讲述用户权限管理,如何创建(CREATE USER)、授权(GRANT)、撤销(REVOKE)和管理用户权限。 本教程通过PPT的...

    mysql从入门到精通

    学习如何使用BEGIN、COMMIT、ROLLBACK以及行级锁、表级锁等概念,对于理解和实现数据库的并发性能至关重要。 8. **备份与恢复** 数据的安全性是数据库管理的关键。书中会讲解如何使用mysqldump进行数据库备份,...

Global site tag (gtag.js) - Google Analytics