天萃荷净

Oracle分区表管理,记录关于Oracle分区表的管理案例:创建、删除、合并、拆分、交换、更改分区表的操作方法

1、添加创建分区表

1.1)增加分区(add partition)

语法是:alter table xxx add partition…

Alter table t_range add partition p5 values less than (50) [tablespace users];

–50 要大于之前分区的所有值

Alter table t_list add partition p5 values (7,8,9) [tablespace users];

–7,8,9均不能在之前分区中出现

Alter table t_hash add partition [p5] [tablespace users];

–添加hash分区

1.2)添加子分区

Alter table xxx modify partition p1 add subpartition …

增加RANGE-HASH子分区

ALTER TABLE diving MODIFY PARTITION locations_us

ADD SUBPARTITION us_locs5 TABLESPACE us1;

说明:Range,list增加分区不会影响索引(包括global 跟local),HASH增加分区会让数据重新分配,产生IO,如果不指定update indexes 选项则会导致有数据移动的索引unusable,需要重新编译。

当然,我们说的对索引的影响都是在表中有数据的情况下,没数据当然影响不到索引了。

2、合并Oracle分区表

2.1)HASH分区或子分区

Alter table xxx coalesce partion [update indexes];

Alter table xxx modify partition p1 coalesce subpartition;

合并一次会减少一个分区(最少能减少到1个),数据重新分配,产生IO,有数据移动的索引失效(如果不指定update indexes的话).

2.2)非HASH分区

Alter table xxx merge partitions/subpartitions p1,p2 into partiton/subpartition p3 [TABLESPACE tablespace_name];

表分区必须是相邻的。

跟COALESCE一样,会产生IO,数据量大的话,IO也是相当大的。

同样可以用UPDATE INDEXES 避免索引失效

alter table dinya_test merge partitions part_01,part_02 into partition part_02;

3、删除表中的分区(drop partition)

Alter table xxx drop partition ppp;

删除子分区:

Alter table xxx drop subpartition ppp;

此功能hash不支持。同时要注意,删除分区会同时删除该分区内数据。

同样,如果不指定update indexes的话该操作会导致GLOBAL索引失效,而LOCAL不会,因为对应的LOCAL索引分区也被删除了嘛,其他分区的LOCAL不会受到影响。

4、交换Oracle表中的分区(exchange partition)

Alter table tb1 exchange partition/subpartition p1 with table tb2;

据说是采用了更改数据字典的方式,所以速度比较快。

可以是分区跟非分区表交换,子分区跟非分区表交换,组合分区跟分区表交换。

alter table t_partition_range exchange partition t_range_p2

with table t_partition_range_tmp;

将t_range_p2与t_partition_range_tmp的数据互迁移

注意点:

涉及交换的两表之间表结构必须一致,除非附加with validation子句;

如果是从非分区表向分区表做交换,非分区表中的数据必须符合分区表中指定分区的规则,除非附加without validation子句;

如果从分区表向分区表做交换,被交换的分区的数据必须符合分区规则,除非附加without validation子句;

Global索引或涉及到数据改动了的global索引分区会被置为unusable,除非附加update indexes子句。

5、拆分分区表

功能与MERGE PARTITIONS相反。通常我们会用来拆分MAXVALUE/DEFAULT分区。

Range partition:

Alter table xxx split partition/subpartition p1 at (15) into (partition/subpartition p1_new1,partition/subpartition p1_new2);

List partition:

Alter table xxx split partition/subpartition p1 values(15,16) into (partition/subpartition p1_new1,partition/subpartition p1_new2);

原分区中符合新值定义的记录会存入第一个分区,其他存入第二个分区,当然,在新分区后面可以指定属性,比如TABLESPACE。

HASH分区不适用。

会产生IO

同样,可用update indexes 来避免索引失效

alter table timestamps split partition p1 at (to_date(’2003-01-01′,’yyyy-mm-dd’))into (partition px tablespace ts3, partition py tablespace ts3);

将P1分区拆分成PX,PY两个分区,分界点是to_date(’2003-01-01′,’yyyy-mm-dd’)

6、修改LIST分区—ADD VALUES

Alter table xxx modify partition/subpartition p1 add values(7,9);

要注意的是,增加的VALUES不能在其他分区列的VALUES值中存在,也不能在DEFAULT分区(如果有的话)中有相应VALUES.

不会影响索引

7、修改LIST 分区—DROP VALUES

Alter table xxx modify partition/subpartition p1 drop values(8,9);

同样,删除的values 不能存在记录.

不会影响索引

8、截断分区

跟TRUNCATE TABLE一样,截断该分区内的数据。

Alter table xxx truncate partition/subpartition p1;

同样,可用update indexes 来避免索引失效

9、移动分区

Alter table xxx move partition/subpartition p1 …;

有些功能比如改变分区表空间,modify partition就做不到,此时就可以用move partition来做

Alter table tab move partition p_tab tablespace tbl update indexes;

可用update indexes 来避免索引失效

10、修改分区默认属性(modify default attributes)

修改表属性:alter table xxx modify default attributes …

修改分区属性(适用于组合分区):alter table xxx modify default attributes for partition p1 …

只对以后添加的分区产生影响,适用于所有分区,其中hash分区只能修改表空间属性。

如:Alter table xxx modify default attributes tablespace users;

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之学习笔记:Oracle分区表 添加 删除 合并 删除 交换 拆分等分区表的操作案例

oracle拆分分区语法详解大全_学习笔记:Oracle分区表 添加 删除 合并 删除 交换 拆分等分区表的操作案例...相关推荐

  1. oracle拆分分区语法详解大全_Oracle hash的分区方法详解

    hash的原理虽然简单,但是它在数据库中可以说是无处不在.其中hash partition是hash在数据库中一个简单的应用,虽然它没有range partition那么常用,但是我们在做数据库水平拆 ...

  2. oracle拆分分区语法详解大全_oracle拆分分区表及重建索引

    分区表的好处,应该就是提高性能. 提高性能的套路,一般就是垂直扩展和水平扩展.垂直扩展就是换更强的服务器,水平扩展就是加更多的服务器.垂直扩展适合单机版,水平扩展常用于分布式系统.而传统的数据库,如o ...

  3. python语法详解大全_笔记:Python 语法要点汇总

    Python 是一门解释型语言,无需编译和链接 Python 解释器 交互模式 脚本模式 源码编码 默认情况下,Python 源文件是 UTF-8 编码 指定源文件的字符编码 # -*- coding ...

  4. python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化

    本文介绍了python OpenCV学习笔记之直方图均衡化,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/d5/daf/tutorial_py_hi ...

  5. kernel_mktime() 详解 —— Linux-0.11 学习笔记(四)

    题目:kernel_mktime() 详解 -- Linux-0.11 学习笔记(四) 在init/main.c文件中,有一个函数static void time_init(void) 该函数读取 C ...

  6. 《TCP/IP详解卷一》学习笔记

    <TCP/IP详解卷一>学习笔记 第1章 概述 第3章 IP:网际协议 第6章 ICMP:internet控制报文协议 第7/8章 Ping/Traceroute程序 第9/10章 IP路 ...

  7. oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...

    天萃荷净 select max(id),min(id) from table优化,分享开发DBA需求,在SQL语句查询最大值.最小值数据时的优化方式案例 1.查看数据库版本 SQL> selec ...

  8. oracle如何往dg加盘_学习笔记:Oracle DG系统 主备库中表空间和数据文件增加删除等管...

    天萃荷净 Oracle Data Guard表空间和数据文件管理汇总 汇总日常工作中操作,在Oracle DG结构系统中,如何删除备库表空间和数据文件,如何管理主库与备库之间的文件系统,详见文章内容. ...

  9. 孙鑫VC++深入详解第二章学习笔记

    第二章 掌握C++ 2.1 从结构到类 2.1.1 结构体的定义 C++相比于C的特性:封装性.继承性.多态性: 对象具有状态和行为,状态保存在成员变量中,行为通过函数实现: 标准输入输出流对象:ci ...

最新文章

  1. ImageView 缩放
  2. 《Credit Risk Scorecard》第八章: Scorecard Implementation
  3. 【程序员の英文听写】Trump’s Totally Not Weird Way of Standing | The Daily Social Distancing Show
  4. Boost:bind绑定右值的测试程序
  5. ipython使用_IPython的介绍与使用
  6. Front End Developer Questions 前端开发人员问题(三)JavaScript部分
  7. 微信小程序WXML语法介绍
  8. .Net(一):再识面向对象之C#学习总结
  9. matlab画交通标志,基于MATLAB的交通标志设计方法研究
  10. idea 2019最新版无法打开报错问题,Error occurred during initialization of VM Initial heap size set to a larger va
  11. 数学之美:谈谈密码学的数学原理
  12. 树莓派通过局域网实现远程开机(wake on lan)
  13. 关于计算机游戏的英语读法,[计算机游戏用英语怎么说]电脑游戏用英语怎么说...
  14. 获取线的中间点(postgis)
  15. 十六进制颜色值 (美观必备 - 设置颜色)
  16. Tomcat是一个Servlet容器?
  17. 常见的乳腺癌标记物研究
  18. 关于DRV8303/8301电路框图
  19. 外盘期货策略|9月17日美原油期货日内操盘策略
  20. c++实现中文大写数字转换

热门文章

  1. python直接下载图片到内存
  2. 第一台计算机是怎么输出,世界上第一台计算机是如何诞生的?
  3. kmz转换为dwg_NX UG软件:带颜色的机器人工作站二维布局图JT格式文件转换方法...
  4. 常见的云服务器运营商及相关的优惠活动
  5. EBC动作片 记录EBC 的 景 和 人
  6. VMware中使用U盘PE系统
  7. 数据结构之KH[第五,六章] -->选择题 (二)
  8. 令人拍案叫绝的 Wasserstein GAN,彻底解决GAN训练不稳定问题
  9. TiDB上百T数据拆分实践
  10. python自动给数字前面补0的方法