接上面一篇,发现按照上面水平拆表把表按照年存储到每个分区表中。由于业务推广后按照年分表数据量还是很大。那么我们考虑能不能再年表中在进行拆分。
下面介绍一下拆分步骤。
原表结构(只看分区情况):
从上面图我们可以看出如WLKP_FP_DATA_2012 分区存储在表空间WLKP_FP_DATA_2012里面
那么时间过半了我们统计半年数据发现WLKP_FP_DATA_2012 分区表数据也很多
我们考虑将WLKP_FP_DATA_2012 按照季度拆分
alter table WLKP_FP_KJ split partition WLKP_FP_DATA_2012 at (to_date('2012-04-01','yyyy-mm-dd')) into (partition WLKP_FP_DATA_2012_1,partition WLKP_FP_DATA_2012);
alter table WLKP_FP_KJ split partition WLKP_FP_DATA_2012 at (to_date('2012-07-01','yyyy-mm-dd')) into (partition WLKP_FP_DATA_2012_2,partition WLKP_FP_DATA_2012);
alter table WLKP_FP_KJ split partition WLKP_FP_DATA_2012 at (to_date('2012-10-01','yyyy-mm-dd')) into (partition WLKP_FP_DATA_2012_3,partition WLKP_FP_DATA_2012);
alter table WLKP_FP_KJ split partition WLKP_FP_DATA_2012 at (to_date('2012-12-31','yyyy-mm-dd')) into (partition WLKP_FP_DATA_2012_4,partition WLKP_FP_DATA_2012);
执行以上语句将WLKP_FP_DATA_2012 按照季度拆分四个子分区表中WLKP_FP_DATA_2012_1、WLKP_FP_DATA_2012_2、WLKP_FP_DATA_2012_3、WLKP_FP_DATA_2012_4
注:最后一个分区时间为什么是2012-12-31呢因为上面拆分WLKP_FP_DATA_2012整年的截止时间是2013-01-01
如果时间是2013-01-01会报错
拆分后的分区如下:
和上面对比我可以看到我们将WLKP_FP_DATA_2012 按照季度拆分出子的分区表,注意以上还是在当前WLKP_FP_DATA_2012表空间下面拆分的
通过上面截图我们看到该分区表只扩展到2013年,那么2014年呢2015年呢我们怎么办呢?
我们同样可以扩展。
1.新建2014年、2015年表空间
CREATE TABLESPACE "WLKP_FP_DATA_2014"
LOGGING
DATAFILE 'E:\oracle\product\10.2.0\oradata\wlkp\WLKP_FP_DATA_2014.ORA'
SIZE 5M REUSE AUTOEXTEND
ON NEXT 1024K MAXSIZE 32767M EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO ;
commit;
CREATE TABLESPACE "WLKP_FP_DATA_2015"
LOGGING
DATAFILE 'E:\oracle\product\10.2.0\oradata\wlkp\WLKP_FP_DATA_2015.ORA'
SIZE 5M REUSE AUTOEXTEND
ON NEXT 1024K MAXSIZE 32767M EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO ;
commit;
2.执行如下修改表结构语句
alter table WLKP_FP_KJ split partition WLKP_FP_DATA_MAXVALUE at (to_date('2015-01-01','yyyy-mm-dd')) into (partition WLKP_FP_DATA_2014 tablespace WLKP_FP_DATA_2014,partition WLKP_FP_DATA_MAXVALUE);
alter table WLKP_FP_KJ split partition WLKP_FP_DATA_MAXVALUE at (to_date('2016-01-01','yyyy-mm-dd')) into (partition WLKP_FP_DATA_2015 tablespace WLKP_FP_DATA_2015,partition WLKP_FP_DATA_MAXVALUE);
3.查看新生成表结构
我们可以通过以上截图看到新扩展的2014、2015年分区表建立成功同时2014、2015建立到另外的表空间了见绿色部分
通过以上步骤我们重新现有表再进行拆分。
注:通过以上步骤执行后表中的索引要重新建立否则以前老的索引要失效的
重新建立表WLKP_FP_KJ索引
alter index PK_WLKP_FP_FPHM unusable
alter index PK_WLKP_FP_FPHM rebuild tablespace WLKPTABLE;
alter index PK_WLKP_FP_NSRSBH_NEW unusable
alter index PK_WLKP_FP_NSRSBH_NEW rebuild tablespace WLKPTABLE;
alter index PK_WLKP_FP_SWJG_DM_NEW unusable
alter index PK_WLKP_FP_SWJG_DM_NEW rebuild tablespace WLKPTABLE;
alter index SYS_C005998 unusable
alter index SYS_C005998 rebuild tablespace WLKPTABLE;
下面我们造一条记录验证是否插入到指定的表分区 中
输入SQL 查询
select count(*) from WLKP_FP_KJ partition(WLKP_FP_DATA_2012);
查询到数据,说明我们分区表建立成功。
- 大小: 22.4 KB
- 大小: 10 KB
- 大小: 44.5 KB
- 大小: 51.7 KB
- 大小: 9.1 KB
分享到:
相关推荐
Oracle拆分字符串函数
Oracle拆分字符串,字符串分割的函数,将返回一个表格,如果有需要的可以下载去看看。
描述了对Oracle GoldenGate的抽取进程进行拆分和合并的基本原则和详细步骤
Erp/Ehr/Crm/Clm系统的开发者很多时候会用到姓名拆分为汉语拼音的代码。 这个函数可以帮你实现以下内容。 1、返回汉语拼音;例如:张三 需要让函数返回 ZhangSan 或 只需要返回姓氏汉语拼音 Zhang 或 只需返回名字的...
oracle锁表查询oracle锁表查询oracle锁表查询oracle锁表查询
主要介绍了oracle普通表转化为分区表的方法,官方给出了四种操作方法,本文主要对第四种方法进行详细分析,需要的朋友可以参考下。
2、再将这较小的临时表与另一张较小的表进行关联查询 先不论思路是否值得商榷,这把临时表当成中转站的做法还是很值得肯定。 临时表本质上是一种cache的表现形式,Oracle的临时表都是事先建好的,一旦用...
Oracle 备份、恢复单表或多表数据步骤,适用于 Oracle 8、9、10。 *备份单表或多表数据:
很好的,经典.创建Oracle 临时表,可以有两种类型的临时表:会话级的临时表,事务级的临时表 。
oracle分区表总结oracle分区表总结oracle分oracle分区表总结区表总结oracle分区表总结
本文详细介绍和阐述了 Oracle 用户(user)和表空间(tablespace)的概念和使用方法等内容,并对用户和表空间使用过程中的注意事项、关键知识点等进行了重点标注和详尽解析,以便于读者进行深入学习和理解。...
为提高oracle的sql执行效率,优化性能,通过oracle表分析功能进行调整,能加快sql查询效率2倍以上
ORACLE表生成MYSQL建表DDL
oracle查询表碎片语句
删除oracle中用户下所有的表,不是系统用户哦!不然会删掉系统的数据表
oracle 系统表大全oracle 系统表大全oracle 系统表大全oracle 系统表大全
oracle创建分区表
Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。
Oracle在线建立超大表的索引,为在线生产系统某核心大表建立索引
oracle 分区表管理oracle 分区表管理oracle 分区表管理oracle 分区表管理oracle 分区表管理