oracle拆分分区语法详解大全_学习笔记:Oracle分区表 添加 删除 合并 删除 交换 拆分等分区表的操作案例...
天萃荷净
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分区表 添加 删除 合并 删除 交换 拆分等分区表的操作案例...相关推荐
- oracle拆分分区语法详解大全_Oracle hash的分区方法详解
hash的原理虽然简单,但是它在数据库中可以说是无处不在.其中hash partition是hash在数据库中一个简单的应用,虽然它没有range partition那么常用,但是我们在做数据库水平拆 ...
- oracle拆分分区语法详解大全_oracle拆分分区表及重建索引
分区表的好处,应该就是提高性能. 提高性能的套路,一般就是垂直扩展和水平扩展.垂直扩展就是换更强的服务器,水平扩展就是加更多的服务器.垂直扩展适合单机版,水平扩展常用于分布式系统.而传统的数据库,如o ...
- python语法详解大全_笔记:Python 语法要点汇总
Python 是一门解释型语言,无需编译和链接 Python 解释器 交互模式 脚本模式 源码编码 默认情况下,Python 源文件是 UTF-8 编码 指定源文件的字符编码 # -*- coding ...
- python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化
本文介绍了python OpenCV学习笔记之直方图均衡化,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/d5/daf/tutorial_py_hi ...
- kernel_mktime() 详解 —— Linux-0.11 学习笔记(四)
题目:kernel_mktime() 详解 -- Linux-0.11 学习笔记(四) 在init/main.c文件中,有一个函数static void time_init(void) 该函数读取 C ...
- 《TCP/IP详解卷一》学习笔记
<TCP/IP详解卷一>学习笔记 第1章 概述 第3章 IP:网际协议 第6章 ICMP:internet控制报文协议 第7/8章 Ping/Traceroute程序 第9/10章 IP路 ...
- oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...
天萃荷净 select max(id),min(id) from table优化,分享开发DBA需求,在SQL语句查询最大值.最小值数据时的优化方式案例 1.查看数据库版本 SQL> selec ...
- oracle如何往dg加盘_学习笔记:Oracle DG系统 主备库中表空间和数据文件增加删除等管...
天萃荷净 Oracle Data Guard表空间和数据文件管理汇总 汇总日常工作中操作,在Oracle DG结构系统中,如何删除备库表空间和数据文件,如何管理主库与备库之间的文件系统,详见文章内容. ...
- 孙鑫VC++深入详解第二章学习笔记
第二章 掌握C++ 2.1 从结构到类 2.1.1 结构体的定义 C++相比于C的特性:封装性.继承性.多态性: 对象具有状态和行为,状态保存在成员变量中,行为通过函数实现: 标准输入输出流对象:ci ...
最新文章
- ImageView 缩放
- 《Credit Risk Scorecard》第八章: Scorecard Implementation
- 【程序员の英文听写】Trump’s Totally Not Weird Way of Standing | The Daily Social Distancing Show
- Boost:bind绑定右值的测试程序
- ipython使用_IPython的介绍与使用
- Front End Developer Questions 前端开发人员问题(三)JavaScript部分
- 微信小程序WXML语法介绍
- .Net(一):再识面向对象之C#学习总结
- matlab画交通标志,基于MATLAB的交通标志设计方法研究
- idea 2019最新版无法打开报错问题,Error occurred during initialization of VM Initial heap size set to a larger va
- 数学之美:谈谈密码学的数学原理
- 树莓派通过局域网实现远程开机(wake on lan)
- 关于计算机游戏的英语读法,[计算机游戏用英语怎么说]电脑游戏用英语怎么说...
- 获取线的中间点(postgis)
- 十六进制颜色值 (美观必备 - 设置颜色)
- Tomcat是一个Servlet容器?
- 常见的乳腺癌标记物研究
- 关于DRV8303/8301电路框图
- 外盘期货策略|9月17日美原油期货日内操盘策略
- c++实现中文大写数字转换
热门文章
- python直接下载图片到内存
- 第一台计算机是怎么输出,世界上第一台计算机是如何诞生的?
- kmz转换为dwg_NX UG软件:带颜色的机器人工作站二维布局图JT格式文件转换方法...
- 常见的云服务器运营商及相关的优惠活动
- EBC动作片 记录EBC 的 景 和 人
- VMware中使用U盘PE系统
- 数据结构之KH[第五,六章] -->选择题 (二)
- 令人拍案叫绝的 Wasserstein GAN,彻底解决GAN训练不稳定问题
- TiDB上百T数据拆分实践
- python自动给数字前面补0的方法