问题描述
亲爱的汤姆,
我们确实有一些表,其中将经常创建分区:
现在-我们确实有一个内务工作,根据我们将访问数据的方式将分区合并为更有用的分区:
不幸的是,这项工作失败了:
调查分区2条:
那根绳子的长度4096。
有什么方法可以绕过这个吗?不幸的是,按范围划分对我们不起作用,因为那时我们失去了对实际合并哪些分区的控制 (只有相邻的可以合并)。
谢谢你的帮助,
菲利普
我们确实有一些表,其中将经常创建分区:
CREATE TABLE partitioned_table ( someUsefulPartitionIndicator NUMBER (*,0), someData varchar2(4000) ) partition by list (someUsefulPartitionIndicator) (partition p1 values (1)); declare i number; begin FOR i IN 2..10000 LOOP execute immediate 'alter table partitioned_table add partition p'||i||' values ('||i||')'; END LOOP; end;复制
现在-我们确实有一个内务工作,根据我们将访问数据的方式将分区合并为更有用的分区:
declare i number; begin FOR i IN 2..5000 LOOP execute immediate 'alter table partitioned_table merge partitions p2,p'||2*i||' into partition p2'; END LOOP; END;复制
不幸的是,这项工作失败了:
ORA-14116: partition bound of partition "P2" is too long ORA-06512: at line 6复制
调查分区2条:
select high_value from user_tab_partitions where partition_name = 'P2' and table_name = 'PARTITIONED_TABLE' '1550, 1548, ..., 2'复制
那根绳子的长度4096。
有什么方法可以绕过这个吗?不幸的是,按范围划分对我们不起作用,因为那时我们失去了对实际合并哪些分区的控制 (只有相邻的可以合并)。
谢谢你的帮助,
菲利普
专家解答
我觉得你在向后解决这个问题。而不是将所有值放在自己的分区中,然后将那些值太少或其他值组合在一起,做相反的事情。
把所有东西都放在一个分区里。然后根据需要从中分离出来。您可以使用默认分区来执行此操作。例如:
这将阻止您达到分区键的4KB限制。以及 (可能) 每个表1024K-1个分区的限制。
把所有东西都放在一个分区里。然后根据需要从中分离出来。您可以使用默认分区来执行此操作。例如:
create table partitioned_table ( someusefulpartitionindicator number (*,0), somedata varchar2(4000) ) partition by list (someusefulpartitionindicator) (partition pdef values (default)); alter table partitioned_table split partition pdef into ( partition p1 values (1), partition p2 values (2), partition pdef ); select partition_name, high_value from user_tab_partitions where table_name = 'PARTITIONED_TABLE'; PARTITION_NAME HIGH_VALUE P1 1 P2 2 PDEF default复制
这将阻止您达到分区键的4KB限制。以及 (可能) 每个表1024K-1个分区的限制。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1325次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
796次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
725次阅读
2025-03-06 09:41:49
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
559次阅读
2025-03-05 00:42:34
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
468次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
361次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
316次阅读
2025-03-26 23:27:33
Oracle分区和执行计划相关的几个问题
听见风的声音
310次阅读
2025-03-07 08:51:42
数据库管理-第299期 数据库是否需要定期重启(20250306)
胖头鱼的鱼缸
252次阅读
2025-03-06 09:09:35
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
247次阅读
2025-03-19 14:41:51