Oracle表分区的创建、新增、拆分
创始人
2024-05-30 22:37:05
0

Oracle中为了方便管理、查询数据当数据量大于500w或者2G时最好用分区表,常见的一种是使用时间作为分区。

分区表添加新的分区有 2 种情况:
(1) 原分区里边界是 maxvalue 或者 default。 这种情况下,我们需要把边界分区 drop 掉,加上新分区后,再添加上新的分区。 或者采用 split,对边界分区进行拆分
(2) 没有边界分区的。 这种情况下,直接添加分区就可以了。

创建分区表:

CREATE TABLE WJZ.wjz_t1(	ID NUMBER, STR1 VARCHAR2(20), STR2 VARCHAR2(20), STR3 VARCHAR2(20), tdate date,constraint pk_id_t1 primary key(id)) PARTITION BY RANGE (TDATE)(PARTITION P202212  VALUES LESS THAN (TO_DATE('2023-01-01','YYYY-MM-DD')),PARTITION POTHER VALUES LESS THAN (MAXVALUE) )

然后插入数据

insert into WJZ_T1 values(1,'str1','str2','abc',to_date('2022-11-10 00:00:01','yyyy-mm-dd hh24:mi:ss'));
insert into WJZ_T1 values(2,'str1','str2','abc',to_date('2022-12-10 00:00:01','yyyy-mm-dd hh24:mi:ss'));
insert into WJZ_T1 values(3,'str1','str2','abc',to_date('2023-1-10 00:00:01','yyyy-mm-dd hh24:mi:ss'));
insert into WJZ_T1 values(4,'str1','str2','abc',to_date('2023-1-12 00:00:01','yyyy-mm-dd hh24:mi:ss'));
insert into WJZ_T1 values(5,'str1','str2','abc',to_date('2023-2-10 00:00:01','yyyy-mm-dd hh24:mi:ss'));
insert into WJZ_T1 values(6,'str1','str2','abc',to_date('2023-2-14 00:00:01','yyyy-mm-dd hh24:mi:ss'));
insert into WJZ_T1 values(7,'str1','str2','abc',to_date('2023-3-10 00:00:01','yyyy-mm-dd hh24:mi:ss'));

其中增加POHTER分区是为了防止不符合分区条件是数据插入报错,但是如果直接新增分区会报错ORA-14074: 分区界限必须调整为高于最后一个分区界限,根本原因是存在最后maxvalue分区

ALTER TABLE wjz_t1 ADD PARTITION P202301 VALUES LESS THAN(TO_DATE('2023-02-01','YYYY-MM-DD'));

 解决方法是拆分分区,在split partition时,根据split point原来的partition分裂成两个partition。

同时,观察在拆分分区前查看索引情况: 

select a.index_name,a.status from user_indexes a where table_name in ('WJZ_T1') ;

拆分分区SQL:

ALTER TABLE wjz_t1 SPLIT PARTITION POTHER AT (TO_DATE('2023-02-01','YYYY-MM-DD')) INTO (PARTITION P202301, PARTITION POTHER);
ALTER TABLE wjz_t1 SPLIT PARTITION POTHER AT (TO_DATE('2023-04-01','YYYY-MM-DD')) INTO (PARTITION P202303, PARTITION POTHER);

 新增表分区成功,如下

 

查看表索引也是正常的:

 

 但是如果要新增P202302表分区的话,以下会报错:

ALTER TABLE wjz_t1 SPLIT PARTITION POTHER AT (TO_DATE('2023-03-01','YYYY-MM-DD')) INTO (PARTITION P202302, PARTITION POTHER);

 所以分区拆分的时候,必须从小的开始,否则会提示如下报错

ORA-14080:无法按指定的上限来分割分区

正确的是

ALTER TABLE wjz_t1 SPLIT PARTITION P202303 AT (TO_DATE('2023-03-01','YYYY-MM-DD')) INTO (PARTITION P202302, PARTITION P202303);

  

此时查看表索引有问题:

 需要重建索引:

ALTER INDEX PK_ID_T1 REBUILD ONLINE;

或者在拆分分区的时候使用以下也会重建索引:

ALTER TABLE wjz_t1 SPLIT PARTITION P202303 AT (TO_DATE('2023-03-01','YYYY-MM-DD')) INTO (PARTITION P202302, PARTITION P202303) UPDATE INDEXES ;

所以如果清理表时,如果时间分区忘了增加,可以拆分默认表分区来新增表分区,然后再通过删除分区方式来清理数据:

alter table WJZ_T1 drop partition P202302;

 但需要注意的是观察分区表的索引情况。

如果表分区split的时候将tablespace更换了,那么也需要rebuild index .

参考文章:

oracle11.2中add&split partition 对全局及本地index的影响 - 知乎

oracle分区表split,分区表split操作及maxvalue处理_科技体验者的博客-CSDN博客

Oracle Partition 分区详细总结_wounler的博客-CSDN博客 

相关内容

热门资讯

武陵山天空被鸟群刷屏 转自:JSTV荔枝视频 【#武陵山天空被鸟群刷屏#】眼下...
河南鹤壁有人下河摸金摸铜钱?当... 近日,有网民发布视频称,位于河南省鹤壁市浚县新镇镇卫河流域,有人下河摸金摸铜钱,引发关注。视频显示,...
大连西山水库出现成群黑色大鱼,... 来源:半岛晨报 5月6日下午,市民王先生在大连西山水库发现一群体型较大、通体黝黑的无鳞怪鱼,经专家鉴...
助力工业精神传承,培养创新型人... 5月10日,记者从柳州市教育局获悉,为了更好地将工匠精神、实业报国融入思想政治教育,柳州将打造大中小...
牌桌上的美丽绽放——欧碧奴美容... 转自:衡水日报2025年5月9日,成都青白江东方欲晓十五里休闲中心,160位欧碧奴会员姐姐与亲友闺蜜...
婚姻登记“全国通办”政策问答 来源:“中国民政”微信公号5月10日,新修订的《婚姻登记条例》正式施行,婚姻登记实现“全国通办”。为...
强对流天气致墙体倒塌 3人死亡... 来源:国家应急广播 近日广西百色有网友称参加葬礼时遭遇强对流天气墙体倒塌致多人死伤相关话题冲上社交平...
珍酒李渡举行2024年度股东周... 5月9日,珍酒李渡集团2024年度股东周年大会暨投资者交流会在湖南长沙1912珍酒美食研究所举行,股...
全国仅12个入选!梧州六堡茶国... 转自:梧州发布日前,国家知识产权局公布第一批国家地理标志保护示范区典型案例,全国仅12个保护示范区入...
美业全新动态:杭州美莱受邀出席... 转自:蚌埠新闻网2025年5月7日,杭州美莱受邀亮相2025中国时尚美学盛典Moly Gala,以"...
青年与城市如何共成长?50人论... 来源:中国新闻网 中新网上海5月10日电 题:青年与城市如何共成长?50人论坛交出“上海答卷”作者 ...
葬礼上再发惨剧!3人确认死亡,... 近日,广西百色网友称,参加葬礼遇强对流天气,墙体倒塌致多人死伤。韦女士接受记者采访时表示,近日与家人...
国海证券原总裁意外离世!年61... (转自:金融街1号狙击手)5月10日,据券商中国报道,国海证券原总裁齐国旗近日因遭遇交通意外,不幸离...
永达股份:子公司部分产品应用于... 永达股份(001239)5月9日在业绩说明会上表示,公司控股子公司江苏金源高端装备有限公司部分产品应...
永远不能忘却的纪念(今日谈) 来源:人民日报80年前的伟大胜利打败了不可一世的法西斯势力,带给世人恒久的启迪:光明必将驱散黑暗,正...
社工“寻味儿”救场避免险情   本报讯(实习记者侯国棣)近日,平谷区滨河街道南小区社区84岁的李大爷忘记了厨房正在煮饭的锅,把锅...
美元贬值,这次不一样 美国总统特朗普经常说希望美元贬值。在他看来,这可以降低制造业出口成本,从而促进出口,帮助减少美国巨额...
张本智和:深受雨果世界杯夺冠冲... 来源:九派新闻 近日,日本乒乓球队举行多哈世乒赛赛前新闻发布会,日本男乒选手张本智和在接受采访时谈到...
具茨山原来是中华文明的C位 【#具茨山原来是中华文明的C位#】具茨山位于黄帝故里河南新郑西南,属中岳嵩山东南余脉,东西延绵约40...
李姓股民向ST东时发起索赔 刘...   受损股民可至Hehson股民维权平台登记该公司维权:http://wq.finance.sina...