oracle 新建、扩展分区表
--新增(扩展)分区表 空间
--复制创建表sql中的 分区语句
partition by range (STATE_DATE)
(
partition PART_202006 values less than
(TO_DATE(' 2020-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace FRADATA_02
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 1M
next 1M
minextents 1
maxextents unlimited
pctincrease 0
)
);
--修改上面的模板
--PART_202006:分区名称
--(TO_DATE(' 2020-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')):按日期分区
alter table 表名 add partition 分区编号 values less than
(TO_DATE('2022-12-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace FRADATA_02
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 1M
next 1M
minextents 1
maxextents unlimited
pctincrease 0
)
UPDATE GLOBAL INDEXES;
--创建新分区后可以分析分析
--EXECUTE IMMEDIATE 'analyze table 表名 estimate statistics';
--查看分区内容
select count(1) from 表名 partition (分区编号);
--扩展日分区
declare
v_table varchar2(64):='表名';
v_day_start varchar2(8) :='20210702';
v_day_end varchar2(8) :='20221231';
i varchar2(8);
v_sql varchar2(5000);
v_nday varchar2(8);
begin
i := v_day_start;
while i <= v_day_end loop
v_nday := to_char(to_date(i,'yyyymmdd'),'yymmdd');
v_sql := 'alter table '||v_table||' add partition part_'||i||' values ('||i||') update indexes';
execute immediate v_sql;
i := to_char(to_date(i,'yyyymmdd')+1,'yyyymmdd');
end loop;
commit;
end;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通