12C 对表分区维护的增强
Oracle Database 12c对表分区变化比较多,共分为下面几点
1.在线移动分区:通过MOVE ONLINE关键字实现在线分区移动。移动过程中,对表和被移动的分区可以执行查询操作,
DML语句以及分区的创建和维护操作。整个移动过程对用户来说是透明的。
2.多个分区同时操作:可以对多个分区同时进行维护操作,如将一年的12个分区合并到一个新的分区中,或者将一个分区
分成多个分区。可以通过FOR语句指定操作的每个语句,对于RANGE分区而言,也可以通过TO来指定处理分区的范围。
多个分区操作自动并行完成。
3.INTERVAL-REFERENCE分区:把11g的interval分区和reference分区结合,这样主表自动增加一个分区后,所有字表,
孙子表·····重重孙子表上都会自动随着外界列数据增加,自动创建新的分区。
4.TRUNCATE和EXCHANGE分区及子分区。五分是TRUNCATE还是EXCHANGE分区,在主表上执行,都可以级联的作用在字表,
孙子吧·····重重孙子表上同时执行。对于TRUNCATE而言,所有表的TRUNACATE操作在同一个事务中,如果中途失败,
会回滚到之前的状态。通过关键字CASCADE实现。
5.异步全局索引维护:对于非常大的分区表而言,UPDATE GLOBAL INDEX不再是痛苦。Oracle可以实现了异步维护的
功能,即使是几亿条的记录的全局索引,在分区维护操作,比如DROP或TRUNCATE后,仍然是VALID状态,索引不会失效,
不过索引的状态是包含OBSOLETE数据,当维护操作完成,索引状态恢复。
6.部分本地和全局索引:Oracle的所有可以在分区级别定义。无论全局索引还是本地所有都可以在分区表的部分分区
上建立,其他分区上则没有所有。当通过所有列访问全表数据时,Oracle通过UNION ALL实现,一部分通过索引扫描,
另一部分通过全分区扫描。这可以减少对历史数据的索引量,增强了灵活性。
具体例子:
1)添加多个新分区:
在12c之前,一次只能添加一个新分区到一个已存在的分区表。在12c中只需要一条单独的ALTER TABLE ADD PARTITION
命令就可以添加N个新分区。
ALTER TABLE EMP_PART ADD PARTITION
PARTITION P4 VALUES LESS THAN(35000)
PARTITION P5 VALUES LESS THAN(40000)
同样,只要MAXVALUE分区不存在,可以添加多个新分区到一个列表和系统分区表
2)删除、截断多个分区/子分区
通过在此之前,一次只能删除/截断一个分区。12c中通过ALTER TABLE table_name {TRUNCAT|DROP} PARTITIONS
ALTER TABLE EMP_PART DROP PARTITIONS P4,P5;
ALTER TABLE EMP_PART TRUNCATE PARTITIONS P4,P5;
要保持索引更新,使用UPDATE INDEXES或UPDATE GLOBAL INDEXES语句。
ALTER TABLE EMP_PART DROP PARTITIONS P4,P5 UPDATE GLOBAL INDEXES;
ALTER TABLE EMP_PART TRUNCATE PARTITIONS P4,P5 UPDATE GLOBAL INDEXES;
如果没有使用UPDATE GLOBAL INDEXES更新索引,也可以通过查询ORPHANED_ENTRIES字段找出是否有索引包含过期的条目
3)将单个分区分割为多个新分区
在此之前是无法单个命令完成这个操作的。
ALTER TABLE EMP_PART SPLIT PARTITIONS p_max INTO
(PARTITION P4 VALUES LESS THAN (30000),
PARTITION P5 VALUES LESS THAN(40000),
PARTITION P_MAX);
4)将多个分区合并为一个分区
ALTER TABLE EMP_PART MERGE PARTITIONS P2,P3,P4 INTO PARTITION P_MERGE;
如果是连续分区,可以通过TO来
ALTER TABLE EMP_PART MERGE PARTITIONS P2 TO P4 INTO PARTITION P_MERGE;
最新文章
- BZOJ1483: [HNOI2009]梦幻布丁
- CSP -- 运营商内容劫持(广告)的终结者
- ArcGIS API ArcGISDynamicMapServiceLayer.setVisibleLayers对带有GroupLayer图层组的数据无效(针对LayerInfo)问题探讨
- COGS1117
- 《JavaScript模式》第2章 基本技巧
- bzoj1346: [Baltic2006]Coin
- TransactionScope 对该事务的状态无效 和一些注意事项
- 隐藏input边框(ie6、ie7)
- 第三篇:GPU 并行编程的运算架构
- softlayerFastUploadVHDtoBS
- ArcEngine下一个TIN生成的轮廓
- JavaScript奇技淫巧
- VSCode CSS自动补充前缀
- unity3d平铺图片
- 【软件工程1916|W(福州大学)_助教博客】团队答辩助教问题记录
- POJ 1703 Find them, Catch them (并查集)
- Vim完全教程
- View的draw机制
- 数组内数据不使用for循环实现多个移动
- Linux Transparent Huge Pages 对 Oracle 的影响
热门文章
- 将CString写入到本地文件中
- JAVA基础补漏--反射
- 在 CentOS 7.0 上安装配置 Ceph 存储
- 死循环的/etc/profile
- Remove Duplicates from Sorted List ,除去链表中相邻的重复元素
- flume-ng源码阅读memory-channel(原创)
- JNIjw02
- 关于angularJS的$watch的 一些小用法
- ArcGIS API For Silverlight使用在线地图的多种方法总结
- Ajax-05 使用XMLHttpRequest和jQuery实现Ajax实例