Oracle表分区(12.2 automatic 表自动分区)
查看分区数据:
select * from test partition(p1)
在Oracle Database 12.2 之前,如果使用列表分区,当插入的数据超过了分区列表值设定,则会抛出异常;而如果存在大量的列表值需要定义,则可能需要一一设置。
在12.2引入的新特性中 - Auto-List Partitioning 可以针对新的列表值,进行自动的分区创建,从而减少了维护的复杂性。
通过以下测试来简单验证一下这个特性的表征,如果是常规的列表分区,在分区缺失时会遇到ORA-14400错误:
SQL> CREATE TABLE enmotech (2 PartID integer not null,3 CretTm date not null,4 PartCD varchar2(2) not null5 ) partition by list (partcd) (6 partition pBJ values ('BJ'),7 partition pCD values ('CD'),8 partition pGZ values ('GZ'),9 partition pSH values ('SH')10 );Table created.SQL> insert into enmotech values (1, sysdate, 'KM');
insert into enmotech values (1, sysdate, 'KM')*
ERROR at line 1:
ORA-14400: inserted partition key does not map to any partition
当设置了automatic关键字之后,分区变更为自动管理:
drop table enmotech purge;CREATE TABLE enmotech (PartID integer not null,CretTm date not null,PartCD varchar2(2) not null
) partition by list (partcd) automatic (partition pBJ values ('BJ'),partition pCD values ('CD'),partition pGZ values ('GZ'),partition pSH values ('SH')
);
当插入一条未定义的分区数据时,新的分区被自动创建:
SQL> insert into enmotech values (1, sysdate, 'KM');1 row created.SQL> select partition_name from user_tab_partitions2 where table_name = 'ENMOTECH';PARTITION_NAME
----------------------------------------------------
PBJ
PCD
PGZ
PSH
SYS_P290
如果这个自动分片的分区名不符合你的命名规则,可以通过DDL语句去修改变更:
SQL> alter table enmotech rename partition SYS_P290 to pKM;Table altered.SQL> select partition_name from user_tab_partitions2 where table_name = 'ENMOTECH';PARTITION_NAME
---------------------------------------------------
PBJ
PCD
PGZ
PKM
PSH
对于已有的分区定义,可以通过关键字 automatic 和 manual 来进行分区定义的调整:
alter table PEOPLE set partitioning automatic;alter table PEOPLE set partitioning manual;
1.显示Oracle数据库所有分区表的信息:
select * from DBA_PART_TABLES;
2.显示表分区信息/显示Oracle数据库所有分区表的详细分区信息:
select * from DBA_TAB_PARTITIONS
3.显示子分区信息/显示Oracle数据库所有组合分区表的子分区信息:
select * from DBA_TAB_SUBPARTITIONS
4.显示分区列/显示Oracle数据库所有分区表的分区列信息:
select * from DBA_PART_KEY_COLUMNS
5.显示子分区列/显示Oracle数据库所有分区表的子分区列信息:
select * from DBA_SUBPART_KEY_COLUMNS
6.显示Oracle数据库所有分区表索引的信息:
SELECT * FROM dba_part_indexes;
Oracle表分区(12.2 automatic 表自动分区)相关推荐
- VS 2019 MFC CRC16校验算法例程总结(计算法/查表法以及CRC16校验表自动生成)
工程需要,根据网上例程对CRC16校验方法进行了总结.CRC16为通讯领域常用的校验算法,其原理想必大家都很清楚.下面为相关的总结和封装类代码.被例程将CRC16校验的方法分为及算法和 ...
- oracle分区属于什么知识,详细讲解Oracle表分区的相关概念及其优点
Oracle 8i以后推出了分区选项.分区将表分离在若于不同的表空间上,用分而治之的方法来支撑元限膨胀的大表,组大表在物理一级的可管理性.将大表分割成较小的分区可以改善表的维护.备份.恢复.事务及查询 ...
- Oracle表分区详细说明
Oracle表分区 自从oracle8i 开始可以把一个表分割为多个小的部分,这样可以对oracle的性能优化带来很大的好处~ 例如:改善表的查询性能,更加容易管理表数据,备份和恢复操作更方便 在or ...
- oracle存储过程备份,利用ORACLE存储过程与JOB结合实现对数据表自动备份
烈火网(LieHuo.Net)教程 利用ORACLE存储过程与JOB结合实现对数据表自动备份. 1.创建存储过程 create or replace procedure data_auto_backu ...
- Oracle表分区和索引分区汇总
Oracle表分区和索引分区汇总 为了简化数据库大表的管理,例如在数据仓库中一般都是TB级的数量级.ORACLE8以后推出了分区选项.分区将表分离在若于不同的表空间上,用分而治之的方法来支撑元限膨胀的 ...
- 数据库表设计、 数据库分层、myslq水平拆分、oracle表分区
数据库表设计 数据库表结构设计方法及原则(li)数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的 ...
- 分而治之:Oracle 18c 及 12.2 分区新特性的 N 种优化实践(含PPT)
关注"数据和云",精彩不容错过 本文根据 杨廷琨 2018 年 5 月 11 日在[第九届中国数据库技术大会]上的演讲内容整理而成,关注公众号并回复 "Yangtingk ...
- Oracle表分区大全
废话少说,直接讲分区语法. Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如: Sql****代码[[图片上传失 ...
- oracle 分区表好处,Oracle表分区的相关概念及其优点(转)
Oracle 8i以后推出了分区选项.分区将表分离在若于不同的表空间上,用分而治之的方法来支撑元限膨胀的大表,组大表在物理一级的可管理性.将大表分割成较小的分区可以改善表的维护.备份.恢复.事务及查询 ...
最新文章
- CI 如何获取get请求过来的数据
- Lucene教程--维护索引、查询对象和相关度排序
- 数据挖掘常用的方法(分类,回归、聚类、关联规则)
- 爬虫软件python彻底卸载_Python爬虫实践:如何优雅地删除豆瓣小组的帖子
- Git 忽略一些文件的提交
- CSS: HTML 和 Body 的区别
- python独立图形_在networkx中查找图形对象中的独立图形
- 从svn导入多个项目_GIT和SVN相比有哪些优势?如何在团队内部推行GIT?
- redisTemplate批量写入数据
- 风变Python编程13类的学习2
- 第二节20181110
- 2021爱分析·数据智能平台厂商全景报告
- windows下面NTP服务器配置,局域网
- Nginx负载均衡配置实例详解(转发学习)留给未来需要的自己
- 洛谷.3733.[HAOI2017]八纵八横(线性基 线段树分治 bitset)
- Python编程中的常见语句
- 读取csv时中文乱码问题
- PHP采集-数据采集PHP采集器
- java tika pdf_TIKA提取PDF
- usb万能驱动win7_最新电脑为何不支持安装win7系统?原来秘密就藏在这里