oracle11g-date字段类型的分区表切换为自动分区表
问题描述#
oracle11g存在字段date类型的range分区(按月划分分区表),由于早期是从oracle9i迁移到oracle11g,历史的分区表都是人工新增分区,先要改为自动分区,减少漏加分区导致的异常。
问题解决#
00、查看当前用户下存在的分区表
#查看当前用户分区表及分区策略
SELECT p.table_name AS 表名,
decode(p.partitioning_key_count, 1, '主分区') AS 分区类型,
p.partitioning_type AS 分区类型,
p.column_name AS 分区键,
decode(nvl(q.subpartitioning_key_count, 0),
0,
'无子分区',
1,
'子分区') AS有无子分区,
q.subpartitioning_type AS 子分区类型,
q.column_name AS 子分区键
FROM (SELECT a.table_name,
a.partitioning_type,
b.column_name,
a.partitioning_key_count
FROM user_part_tables a, user_part_key_columns b
WHERE a.table_name = b.NAME
AND b.object_type = 'TABLE') p,
(SELECT a.table_name,
a.subpartitioning_type,
b.column_name,
a.subpartitioning_key_count
FROM user_part_tables a, user_subpart_key_columns b
WHERE a.table_name = b.NAME
AND a.subpartitioning_key_count <> 0
AND b.object_type = 'TABLE') q
WHERE p.table_name = q.table_name(+)
ORDER BY 5, 4, 1;
01、查看当前用户下存在的自动分区表
select distinct(table_name) from user_tab_partitions where interval = 'YES';
存在max分区#
01、查看max分区是否存在数据
select * from ZS_KKXX_JYLS partition(PART_202202);
02、存在数据则数据备份出来
create table ZS_KKXX_JYLS_bak_20220122 as select * from ZS_KKXX_JYLS partition(PART_202202);
03、删除max分区
alter table ZS_KKXX_JYLS drop PARTITION (PART_202202);
04、设置自动月度自动添加分区
alter table ZS_KKXX_JYLS SET INTERVAL (NUMTOYMINTERVAL(1,'MONTH'));
05、在线重建索引(只有max分区有数才需重建)
alter index PK_ZS_KKXX_JYLS rebuild online;
06、max分区的数据导入分区表
insert into ZS_KKXX_JYLS select * from ZS_KKXX_JYLS_bak_20220122;
不存在max分区#
01、设置月度自动添加分区
alter table ZS_KKXX_JYLS SET INTERVAL (NUMTOYMINTERVAL(1,'MONTH'));
作者: mvpbang
出处:https://www.cnblogs.com/xiaochina/p/17019561.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2019-02-26 linux修改系统时间
2017-02-26 Linux安装SQLite轻量级数据库