• 什么是分区?

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

  • 分区的好处?

    查询只是查询指定分区,数据更少,速度快,好维护。

  • 如何实施分区?

oracle分区分为四种:1.范围分区(Range partitioning);2.hash分区(Hash partitioning);3.列表分区  (List partitioning);4.组合分区(Composite partitioning)

1)范围分区(Range partitioning)

CREATE TABLE sales (acct_no      NUMBER(5),person       VARCHAR2(30),sales_amount NUMBER(8),week_no      NUMBER(2)) PARTITION BY RANGE (week_no)  (PARTITION P1 VALUES LESS THAN (4) TABLESPACE data0,PARTITION P2 VALUES LESS THAN (8) TABLESPACE data1,...…     PARTITION P13 VALUES LESS THAN (53)TABLESPACE data12

Range分区是最早、最经典的分区算法,Range分区通过对分区字段值的范围进行分区,特别适合于按时间周期进行数据的存储。日、周、月、年等。缺点是范围分区的数据可能不均匀,范围分区与记录值相关,实施难度和可维护性相对较差。

2)hash分区(Hash partitioning)

create table CUSTOMERS (... column definitions ...)
pctfree 0 nologging
storage ( initial 40m next 40m pctincrease 0 )
partition by hash(customer_no) partitions 8 store in (cust_data01,cust_data02)create table CUSTOMERS (... column definitions ...)
pctfree 0 nologging
storage ( initial 40m next 40m pctincrease 0 )
partition by hash(customer_no)
(partition cust_p01 tablespace cust_data01
,partition cust_p02 tablespace cust_data02
,partition cust_p03 tablespace cust_data03
,partition cust_p04 tablespace cust_data04
,partition cust_p05 tablespace cust_data05
,partition cust_p06 tablespace cust_data06
,partition cust_p07 tablespace cust_data07
,partition cust_p08 tablespace cust_data08)

基于分区字段的HASH值,自动将记录插入到指定分区。分区数一般是2的幂,易于实施,总体性能最佳,适合于静态数据。HASH分区适合于数据的均匀存储,HASH分区特别适合于PDML和partition-wise joins。支持 (hash) local indexes,9i 不支持 (hash) global indexes,10g 支持(hash) global indexes HASH分区。缺点是数据管理能力弱,HASH分区对数据值无法控制。

3)列表分区  (List partitioning)

create table addresses (... column definitions ...)
pctfree 0 nologging
storage ( initial 40m next 40m pctincrease 0 )
partition by list(city_name)
(partition addr_p01 values ('WELLINGTON') tablespace addr_data01
,partition addr_p02 values ('CHRISTCHURCH') tablespace addr_data02
,partition addr_p03 values ('DUNEDIN','INVERCARGILL') tablespace addr_data03
,partition addr_p04 values ('AUCKLAND') tablespace addr_data04
,partition addr_p05 values ('HAMILTON','ROTORUA','TAURANGA') tablespace addr_data05)

ist分区通过对分区字段的离散值进行分区。List分区是不排序的,而且分区之间没有关联关系,List分区适合于对数据离散值进行控制。List分区只支持单个字段。List分区具有与范围分区相似的优缺点,数据管理能力强。List分区的数据可能不均匀,List分区与记录值相关,实施难度和可维护性相对较差

3)列表分区  (List partitioning)

create table addresses (... column definitions ...)
pctfree 0 nologging
storage ( initial 40m next 40m pctincrease 0 )
partition by list(city_name)
(partition addr_p01 values ('WELLINGTON') tablespace addr_data01
,partition addr_p02 values ('CHRISTCHURCH') tablespace addr_data02
,partition addr_p03 values ('DUNEDIN','INVERCARGILL') tablespace addr_data03
,partition addr_p04 values ('AUCKLAND') tablespace addr_data04
,partition addr_p05 values ('HAMILTON','ROTORUA','TAURANGA') tablespace addr_data05)

ist分区通过对分区字段的离散值进行分区。List分区是不排序的,而且分区之间没有关联关系,List分区适合于对数据离散值进行控制。List分区只支持单个字段。List分区具有与范围分区相似的优缺点,数据管理能力强。List分区的数据可能不均匀,List分区与记录值相关,实施难度和可维护性相对较差。

4)组合分区(Composite partitioning)

create table daily_trans_data (...column definitions ...)
partition by range(trans_datetime)
subpartition by hash(customer_no) subpartitions 8 store in (dtd_data01,dtd_data02)(partition dtd_20010620 values less than (to_date('21-jun-2001','dd-mon-yyyy'))(subpartition dtd_20010620_s01,subpartition dtd_20010620_s02,subpartition dtd_20010620_s03 tablespace dtd_data03,subpartition dtd_20010620_s04 tablespace dtd_data04,subpartition dtd_20010620_s05 tablespace dtd_data05,subpartition dtd_20010620_s06 tablespace dtd_data06,subpartition dtd_20010620_s07 tablespace dtd_data07,subpartition dtd_20010620_s08 tablespace dtd_data08),partition dtd_20010621 values less than (to_date('22-jun-2001','dd-mon-yyyy')),partition dtd_20010622 values less than (to_date('23-jun-2001','dd-mon-yyyy')) subpartitions 4)

Oracle支持的Composite分区: Range-Hash,Range-List,既适合于历史数据,又适合于数据均匀分布,与范围分区一样提供高可用性和管理性。有更好的PDML和partition-wise joins性能,实现粒度更细的操作,支持复合 local indexes,不支持复合composite global indexes。

转载于:https://my.oschina.net/jianxiao/blog/277513

Oracle数据库表分区相关推荐

  1. 怎么解锁oracle数据库表,Oracle数据库表解锁语句

    --表解锁 select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_ ...

  2. Oracle 的表分区详解

    --本文转自https://www.cnblogs.com/leiOOlei/archive/2012/06/08/2541306.html 从以下几个方面来整理关于分区表的概念及操作: 表空间及分区 ...

  3. Oracle增加表分区

    Oracle增加表分区 一.首先我们讲一下表分区的优缺点 表分区有以下优点: 1.改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度. 2.增强可用性:如果表的某个分区出现故障,表在 ...

  4. Oracle 数据库表性能优化

    Oracle 数据库表性能优化 最近在一次工作过程中,遇到了oralce 表性能慢的问题.一个历史表,一个月将近1000多万的数据量,想查询这个表的数据,只使用了一个简单的语句,却一个多小时都查不出来 ...

  5. Oracle数据库表导出和导入csv文件操作

    Oracle数据库表导出和导入csv文件操作 数据库是Oracle 9i 1.导出csv文件 这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中 ...

  6. Oracle数据库表设计时的注意事项

    Oracle数据库表设计时的注意事项  表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据 ...

  7. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  8. Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看

    Oracle 数据库表空间 第一章:表空间的拓展 ① 查看剩余表空间大小 ② 查看表空间文件路径 ③ 通过新增表空间文件拓展表空间 ④ 查看表空间已分配大小 第一章:表空间的拓展 ① 查看剩余表空间大 ...

  9. linux数据库创建表空间语句,如何用LINUX用命令创建ORACLE数据库表空间和用户

    如何用LINUX用命令创建ORACLE数据库表空间和用户 文本模式下如何建 更新时间:2019-06-21 19:36 最满意答案 先su 到 oracle用户,SYS用户以DBA身份登陆 //创建临 ...

最新文章

  1. mysql 连接 选库 查询
  2. 在python函数中参数分类的详细教程
  3. b 树查找时间复杂度_你心里是没点B树吗?
  4. mini车f和r的区别_最大最实用的MINI,最值得买的MINI?
  5. 小型论坛php,PHP练手:一个小型论坛(带后台)_PHP教程
  6. python列表购物
  7. HTTP GET/CONNECT代理区别
  8. SharePoint【学习笔记】-- SPWeb.EnsureUser()注意AllowUnsafeUpdates=true
  9. mysql安装教程【安装版】
  10. VTK学习之激光点云动态库封装(排水管道)
  11. c语言变量是直接寻址,直接寻址页变量
  12. 服务器cpu型号后面的字母,Intel 至强 E3服务器CPU后缀解读
  13. 我国智能变电站建设到什么程度了
  14. 敬业签windows11桌面便签电脑版怎么下载安装win11桌面便签软件?
  15. 闲鱼选品我使用的4个网站,附赠20个流量密码关键字!
  16. 一周信创舆情观察(7.20~7.26)
  17. 中国电信的天翼宽带怎么样才能不用“中国电信无线宽带”客户端
  18. 基于MATLAB的车牌识别研究
  19. python求10以内的素数_python如何求100以内的素数
  20. 全部A股2010-2018年年报数据明细

热门文章

  1. 教师超实用的微课制作软件
  2. [附源码]计算机毕业设计springboot高校体育场馆管理系统
  3. 基于JSP的超市会员管理系统毕业设计
  4. 2023美赛建模E题:光污染 - 思路分析
  5. 机器人与matlab—Robotics Toolbox—01空间位姿描述
  6. 程序员的维权之路-如何通过劳动仲裁拿到4个月的补偿
  7. RBAC权限模型详解
  8. 《社会调查数据管理——基于Stata 14管理CGSS数据》一3.2 和统计有关的术语
  9. 计算机绘图是一种什么绘图,是指利用计算机上的什么进行美术创作过程.,传统绘画与电脑绘画的表现形式分析...
  10. 如何在vue引入UE Editor