所谓分区是指把一张表和索引划分为若干小块, 在创建表的结构时应该考虑好分区方案, 选择表中某一列或多列数据作为关键字,

该关键字决定哪些数据分到哪些区, Oracle对分区进行管理, 插入数据自动存储到相应的分区.

可以分区的数据类型: number , date , varchar2 , char

1. Oracle的表分区种类:

1. 范围分区

1. 对表进行单列范围分区

例子:

CREATE TABLE emp

(

id NUMBER(10),

name VARCHAR2(10),

salary NUMBER(10)

)

PARTITION BY RANGE(salary)

(

PARTITION p1 VALUES LESS THAN(4000) TABLESPACE myspace,

PARTITION p2 VALUES LESS THAN(9000) TABLESPACE myspace2

);

查看表的分区信息

SELECT table_name,partition_name,tablespace_name FROM user_tab_partitions;

插入数据

INSERT INTO emp VALUES(1,'马雪',3500);

INSERT INTO emp VALUES(2,'李涛',2000);

INSERT INTO emp VALUES(3,'李白',4000);

INSERT INTO emp VALUES(4,'王浩',5000);

按分区查询

SELECT * FROM emp PARTITION(p1);

SELECT * FROM emp PARTITION(p2);

单独对 分区执行 truncate 操作

ALTER TABLE emp TRUNCATE PARTITION p2;

2. Hash 分区

Hash 分区是根据hash 算法来计算具体某条记录应该插入到哪个分区中,

例子:

DROP TABLE emp;

CREATE TABLE emp

(

id NUMBER(10),

name VARCHAR2(10),

salary NUMBER(10)

)

PARTITION BY HASH(id)

PARTITIONS 2

STORE IN (myspace,myspace2);

插入数据

INSERT INTO emp VALUES(1,'马雪',3500);

INSERT INTO emp VALUES(2,'李涛',2000);

INSERT INTO emp VALUES(3,'李白',4000);

INSERT INTO emp VALUES(4,'王浩',5000);

查看表的分区信息

SELECT table_name,partition_name,tablespace_name FROM user_tab_partitions;

按分区查询 sys_p1 , sys_p2 是系统自动产生的分区名称

SELECT * FROM emp PARTITION(sys_p1);

SELECT * FROM emp PARTITION(sys_p2);

3. 复合分区

将前面两种分区综合的方法

例子:

DROP TABLE emp;

CREATE TABLE emp

(

id NUMBER(10),

name VARCHAR2(10),

salary NUMBER(10)

)

PARTITION BY RANGE(salary)

SUBPARTITION BY HASH(id)

SUBPARTITIONS 2

(

PARTITION p1 VALUES LESS THAN(4000) TABLESPACE myspace,

PARTITION p2 VALUES LESS THAN(9000) TABLESPACE myspace2

);

插入数据

INSERT INTO emp VALUES(1,'马雪',3500);

INSERT INTO emp VALUES(2,'李涛',2000);

INSERT INTO emp VALUES(3,'李白',4000);

INSERT INTO emp VALUES(4,'王浩',5000);

查看表的分区信息

SELECT table_name,partition_name,tablespace_name FROM user_tab_partitions;

按分区查询

SELECT * FROM emp PARTITION(p1);

SELECT * FROM emp PARTITION(p2);

4. 列表分区

例子:

DROP TABLE emp;

CREATE TABLE emp

(

id NUMBER(10),

name VARCHAR2(10),

salary NUMBER(10),

location VARCHAR2(10)

)

PARTITION BY LIST(location)

(

PARTITION p1 VALUES('北京') TABLESPACE myspace,

PARTITION p2 VALUES('上海', '广东') TABLESPACE myspace2

);

查看表的分区信息

SELECT table_name,partition_name,tablespace_name FROM user_tab_partitions;

插入数据

INSERT INTO emp VALUES(1,'马雪',3500,'北京');

INSERT INTO emp VALUES(2,'李涛',2000,'上海');

INSERT INTO emp VALUES(3,'李白',4000,'上海');

INSERT INTO emp VALUES(4,'王浩',5000, '广东');

按分区查询

SELECT * FROM emp PARTITION(p1);

SELECT * FROM emp PARTITION(p2);

2.分区和可用性、性能的关系

1. 由于数据分区, 硬件故障只影响局部数据.

2. 提高数据查询速度, 可只对特定分区查询. 提供了对大型数据库的数据分散管理能力.

3.本地分区索引、全局分区索引、全局索引

oracle分区设计,​Oracle 分区相关推荐

  1. MySQL调优(六):分区设计,分区优化案例

    上节课没讲完的一个案例 优化 limit 分页 在很多应用场景中我们需要将数据进行分页,一般会使用limit加上偏移量的方法实现,同时加上合适的orderby 的子句,如果这种方式有索引的帮助,效率通 ...

  2. oracle表分区设计_ORACLE 分区表的设计

    ORACLE 分区表的设计 时间:2019-01-29 22:07作者:网友投稿 分区表的概念 分区致力于解决支持极大表和索引的关键问题.它采用他们分解成较小和易于管理的称为分区的片(piece)的方 ...

  3. oracle表分区设计_Oracle数据库分区技术

    1.Oracle的分区技术基本原理: Oracle的分区技术的基本思路就是:分而治之. 2.分区概述 l 大数据对象(表.索引)被分成小的物理段 l 当分区表建立时,记录基于分区字段值被存储到相应分区 ...

  4. Oracle表分区和索引分区汇总

    Oracle表分区和索引分区汇总 为了简化数据库大表的管理,例如在数据仓库中一般都是TB级的数量级.ORACLE8以后推出了分区选项.分区将表分离在若于不同的表空间上,用分而治之的方法来支撑元限膨胀的 ...

  5. oracle分区list,Oracle 分区表中存在range-list表分区时遇到问题及解决办法

    Oracle 分区表中存在range-list表分区时遇到问题及解决办法 我们遇到的通常是list分区这种居多,我就不介绍了. 以下解决的是 复合分区情况 表已存在,需要在范围分区中增加一个分区 我们 ...

  6. Oracle海量数据优化-02分区在海量数据库中的应用-更新中

    思维导图 概述 以前梳理了一篇文章, 案例不是很充分 Oracle-分区表解读 故本篇博文系统的再重新阐述一下 当我们对海量数据的Oracle数据库进行管理和维护时,几乎无一例外的使用了分区(part ...

  7. oracle删除建分区索引,Oracle分区表之创建维护分区表索引的详细步骤

    分区索引分为本地(local index)索引和全局索引(global index).局部索引比全局索引容易管理, 而全局索引比较快.与索引有关的表:dba_part_indexes 分区索引的概要统 ...

  8. oracle for函数,oracle分区表述的FOR语句(一)

    指定一个分区除了使用分区名称外,很多时候还可以使用FOR语句. 从11g开始,对分区进行操作的时候,不仅可以使用分区名称,还可以使用FOR语句. 在10g中,MERGE RANGE分区的语句如下: S ...

  9. oracle 增加间隔分区,oracle分区表之间隔分区(oracle 11g) - 漫兮网

    范围分区允许用户根据分区键列值的范围创建分区.下面是一个按范围分区表的示例: create table sales6 ( sales_id number, sales_dt date ) partit ...

最新文章

  1. 本地应用 v-model
  2. web服务器的文档根目录,web服务器根目录中
  3. Unity shader学习之屏幕后期处理效果之高斯模糊
  4. 删库不跑路,详解MySQL数据恢复
  5. 计算机应用基础(高起专)答案,东北师范大学14秋《计算机应用基础(高起专)》14秋在线作业1答案...
  6. ie系列浏览器_IE浏览器换Logo,真担心你上网找不到图标
  7. 手工查杀myplayer病毒
  8. 表迁移工具的选型-复制ibd的方法
  9. 问题六十八: 着色模型(shading model)(0)——《Ray Tracing from the Ground Up》代码的移植
  10. Java中String.format()的简单用法介绍
  11. 耗时一周,我用Python爬取全国各地大学校花(高清照片和个人信息)
  12. 音频(一)时域图、 频谱图 Spectrum
  13. 计算机参数配置解读,教你看懂电脑配置参数,了解组装电脑基本知识
  14. Unity3D Android接入FCM推送
  15. MFC下ODBC方式连接数据库
  16. 计算机犯罪保护现场,计算机犯罪现场.ppt
  17. torch.nn.Linear详解
  18. 利用matlab将.mat格式文件转换成wav文件
  19. Java项目:洗浴中心管理系统(java+SSM+JSP+jQuery+javascript+Mysql)
  20. 安防领域对视频图像处理技术的特殊要求

热门文章

  1. 自助共享咖啡机市场现状研究分析
  2. 调试血泪经验之uart/ttl/rs232电平转换问题
  3. Vue3 路由跳转如何刷新当前页重新请求数据
  4. 修改注册表解决Skype for Business(Lync) 不能登录的问题
  5. C#毕业设计——基于C#+asp.net+sqlserver的图书销售管理系统设计与实现(毕业论文+程序源码)——图书销售管理系统
  6. rhino软件上Grasshopper 中的快捷键(用gh的同学不妨了解一下)
  7. IRDye 800CW 红外染料IRDye 800CW NHS Ester/Maleimide/Carboxylate/Carboxylic acid
  8. java如何写电梯代码_JAVA编写的一个简易的电梯模型,完成电梯如何满足乘客上下楼需求(ElevatorTest)...
  9. Camtasia Studio2023中文版下载安装图文教程
  10. 计算机数据库课程设计,药品销售管理系统