Oracle子分区(sub partition)操作
要重新定义大量分区表。
首先看 SQL Reference 大致了解了 Oracle 的分区修改操作。Alter table 语句的alter_table_partitioning 子句可以分为以下几类:
全局:modify_table_default_attrs
分区:Modify, Move, Add, Coalesce, Drop, Rename, Truncate, Split, Merge, Exchange
子分区:Set Template, Modify, Move, Drop, Rename, Truncate, Split, Merge, Exchange
Move: 将分区、子分区移动到新的表空间。
Coalesce: 只适用于 hash 分区的表。作用是减少一个 hash 分区;方法是将最后一个分区的数据分布到前面的分区中,再删除此分区。
Merge: 将两个分区、子分区合并为一个新分区,并删除两个旧分区。Merge 可以合并 List 和相邻的 Range 分区,只能合并属于同一分区的 List 子分区。
Exchange: 交换表分区。
我要做的是添加 List 分区、List 子分区、修改子分区模板。
1. 添加 List 分区:
如果表使用 List 分区,且创建了 Default 分区,则此表上无法执行 Add 分区操作,必须 Split 此表的 Default 分区。Alter table 语句提供了 split_table_partition 子句。此子句的功能是创建两个新分区(新建 Segment,可以指定新的物理属性),移动 partition 指定的分区的数据,满足 values 条件的放入 into 的第一个分区,其余的放入第二个分区,之后原分区。Oracle 将自动 Split Local Index,因此需要重建索引。
下面的语句为表 A_CHECKBILL_MONTH 添加了一个分区 P_6230000,将原有 P_OTHERS 分区中 COMPANY_ID = 6230000 的数据存储到新分区 P_6230000 ,剩余数据存储到 P_OTHERS。
alter table A_CHECKBILL_MONTH
split partition P_OTHERS values (6230000) into (
partition P_6230000,
partition P_OTHERS
)
update indexes;
2. 添加 List 子分区:
Oracle 没有提供子分区 Add 操作,因此添加子分区必须使用 Split 操作。Alter table 语句提供了 split_table_subpartition 子句,此子句的功能是将一个 List 子分区 Split 为两个。原理跟 List 分区类似。
下面的语句为表 A_BATCH_TURNDAYS 添加了一个子分区 P_6230000,将原有 P_OTHERS 分区中 COMPANY_ID = 6230000 的数据存储到新分区 P_6230000 ,剩余数据存储到 P_OTHERS。
alter table A_BATCH_TURNDAYS
split subpartition P_200401_SP_OTHERS values (6230000) into (
subpartition P_200401_SP_6230000,
subpartition P_200401_SP_OTHERS
)
update indexes;
3. 修改子分区模板:
Alter table 语句的 set_subpartition_template 子句,作用是重新定义(或新建、清除)复合分区表的 list 或 hash 子分区模板。执行 set_subpartition_template 操作后,表中已创建的子分区不受影响,本地、全局索引也不受影响。在此之后的分区操作(例如 add、merge 操作)将使用新的模板。
以下语句更新表 A_CHECKBILL_DAY 的子分区模板
alter table A_CHECKBILL_DAY
set subpartition template (
subpartition SP_2000000 values (2000000),
subpartition SP_6280000 values (6280000),
subpartition SP_6010000 values (6010000),
subpartition SP_6020500 values (6020500),
subpartition SP_6050000 values (6050000),
subpartition SP_6070000 values (6070000),
subpartition SP_6080400 values (6080400),
subpartition SP_6090000 values (6090000),
subpartition SP_6110000 values (6110000),
subpartition SP_6170000 values (6170000),
subpartition SP_6200000 values (6200000),
subpartition SP_6300000 values (6300000),
subpartition SP_6250000 values (6250000),
subpartition SP_6130000 values (6130000),
subpartition SP_6140000 values (6140000),
subpartition SP_6160000 values (6160000),
subpartition SP_6180000 values (6180000),
subpartition SP_6230000 values (6230000),
subpartition SP_OTHERS values (default)
);
Oracle子分区(sub partition)操作的更多相关文章
- Oracle 表分区partition(http://love-flying-snow.iteye.com/blog/573303)
http://www.jb51.net/article/44959.htm Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库表中某一字段的值的范围来划 ...
- 转:Oracle表分区
Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如: 1. create table graderecord 2. ...
- Oracle表分区[转]
废话少说,直接讲分区语法. Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如: create table gra ...
- Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区(转载)
一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如: 1 create table graderecord 2 ( 3 sno varchar2(10), 4 sname varcha ...
- Oracle 12C 新特性之表分区或子分区的在线迁移
Oracle 12c 中迁移表分区或子分区到不同的表空间不再需要复杂的过程.与之前版本中未分区表进行在线迁移类似,表分区或子分区可以在线或是离线迁移至一个不同的表空间.当指定了 ONLINE 语句,所 ...
- Oracle 表分区(Partition)
表分区功能能够改善应用程序性能,提高数据库可管理性和可用性,是数据库管理非常关键的技术.数据库通过使用分区提高查询性能,简化日常管理维护工作. 1 分区优点 1) 减少维护工作量,独立管理每个表分区比 ...
- oracle表分区的,分区操作,分区查询,子分区查询
一.摘要 有关表分区的一些维护性操作: 注:分区根据具体情况选择. 表分区有以下优点: 1.数据查询:数据被存储到多个文件上,减少了I/O负载,查询速度提高. 2.数据修剪:保存历史数据非常的理想. ...
- [Oracle][Partition][Controlfile]Partition 操作是否和 Controlfile有关?
Partition 操作是否和 Controlfile有关? 通过实验来判断: 对比 Partition 前后的操作,看看controlfile 的dump 信息中是否有记录,结果发现没有记录在 co ...
- oracle 分区表(子分区)收缩笔记
思路1.首先移动子分区到别的表空间.2.收缩数据文件.3.再把子分区移回原表空间. ---------------------------------------------生成发送报告移动子分区语句 ...
随机推荐
- tensorflow 中 feed的用法
Feed 上述示例在计算图中引入了 tensor, 以常量或变量的形式存储. TensorFlow 还提供了 feed 机制, 该机制 可以临时替代图中的任意操作中的 tensor 可以对图中任何操作 ...
- Entity Framework 6.0 Tutorials(3):Code-based Configuration
Code-based Configuration: Entity Framework 6 has introduced code based configuration. Now, you can c ...
- WEB测试和APP测试区别
Web测试和App测试从流程上来说,没有区别.都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试.性 ...
- ajax 跨域名调用
在ajax 中要跨域名 请求的时候要注意 1. dataType: 'jsonp', 2. jsonp: 'callback', <script type="text/javascri ...
- Nexus 私有仓库
Nexus3.6和Nexus2.x安装不同,2.x版本需要安装服务,再启动.而3.6版本则更加简单. 步骤如下: jdk环境:1.8 Nexus3.6解压(注意,路径不要带空格及中文),解压后有两个文 ...
- VS2010-安装包制作过程图解
最近做了winform相关程序,开始总结制作安装包过程. 1.首先在打开 VS2010 =>新建=>项目 2.创建一个安装项目 Setup1 在“目标计算机上的文件系统”下我们看见 ...
- 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)
Anagrams of string(带有重复项) 使用递归.对于给定字符串中的每个字母,为字母创建字谜.使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基 ...
- git Problem with the SSL CA cert (path? access rights?)
问题: [root@localhost opt]# git clone https://github.com/docker/docker.git 正克隆到 'docker'...fatal: unab ...
- Socket 简易静态服务器 WPF MVVM模式(三)
ViewModels类 这个类其实就是个大杂烩,什么都可以用 这个类没有什么东西,最多的就是写一下xaml页面的逻辑控制,开启关闭监听 using System; using System.Colle ...
- 基于Solr的多表join查询加速方法
前言 DT时代对平台或商家来说最有价值的就是数据了,在大数据时代数据呈现出数据量大,数据的维度多的特点,用户会使用多维度随意组合条件快速召回数据.数据处理业务场景需要实时性,需要能够快速精准的获得到需 ...