【动手实践】Oracle 12.2新特性:多列列表分区和外部表分区
Oracle 12.2版本中,增加了大量的分区新特性,这其中包括:
以下介绍的三个特性同样是12.2新增的:
多列列表分区、外部表分区、维护过滤
而对于多列列表分区的支持,也是大家关注已久的特性,先看一下脚本(在 livesql.oracle.com 测试执行,推荐动手实践):
CREATE TABLE dba_by_db_in_yhem
(dbalic NUMBER,
username VARCHAR2(20),
dbcat VARCHAR2(4),
region VARCHAR2(10)
)
PARTITION BY LIST (dbcat, region)
(
PARTITION north_part VALUES ((ORCL,BEIJING), (ORCL,TIANJIN)),
PARTITION south_part VALUES ((DB2,SHENZHEN), (DB2,GUANGZHOU)),
PARTITION west_part VALUES ((SQL,CHENGDU),(ORCL,CHENGDU),(DB2,KUNMING)),
PARTITION east_part VALUES (ORCL,SHANGHAI),
PARTITION rest VALUES (DEFAULT)
);
insert into dba_by_db_in_yhem values(1,EYGLE,ORCL,BEIJING);
insert into dba_by_db_in_yhem values(2,KAMUS,ORCL,BEIJING);
insert into dba_by_db_in_yhem values(3,LAOXIONG,SQL,CHENGDU);
insert into dba_by_db_in_yhem values(4,ORA-600,DB2,GUANGZHOU);
insert into dba_by_db_in_yhem values(5,YANGTINGKUN,ALL,BEIJING);
select * from dba_by_db_in_yhem partition (north_part);
select * from dba_by_db_in_yhem partition (south_part);
select * from dba_by_db_in_yhem partition (west_part);
select * from dba_by_db_in_yhem partition (east_part);
select * from dba_by_db_in_yhem partition (rest);
现在Oracle支持通过多列定义列表分区,最多支持16个列值定义,这极大的丰富了列表分区的适用场景。
为了简化维护操作,12.2 增加了维护过滤特性 - Filtered Partition on Maintenance Operations,也就是说,在执行分区的Move、Split和Merge等操作时,可以选择对数据进行过滤,通过一个 INCLUDING ROWS 进行限制。
继续前面的测试用例,当MOVE时指定保留分区中区域为「BEIJING」的数据后,『TIANJIN』的数据则被移除了:
insert into dba_by_db_in_yhem values(6,SECOOLER,ORCL,TIANJIN);
select * from dba_by_db_in_yhem partition (north_part);
ALTER TABLE dba_by_db_in_yhem MOVE PARTITION north_part
INCLUDING ROWS WHERE REGION = BEIJING;
select * from dba_by_db_in_yhem partition (north_part);
在12.2中,Oracle还支持外部表分区,类似如下的语法展示了这一特性的用途,对于一个统一的外部表,可以通过分区指向不同的外部文件,不同文件可以用于存储已经分类的数据,从而更加灵活的使用外部表:
CREATE TABLE sales (loc_id number, prod_id number, cust_id number, amount_sold number, quantity_sold number)
ORGANIZATION EXTERNAL
(TYPE oracle_loader
DEFAULT DIRECTORY load_d1
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
NOBADFILE
LOGFILE log_dir:sales.log
FIELDS TERMINATED BY ","
)
)
REJECT LIMIT UNLIMITED
PARTITION BY RANGE (loc_id)
(PARTITION p1 VALUES LESS THAN (1000) LOCATION (california.txt),
PARTITION p2 VALUES LESS THAN (2000) DEFAULT DIRECTORY load_d2 LOCATION (washington.txt),
PARTITION p3 VALUES LESS THAN (3000))
;
了解了Oracle这些新的变化,将有助于我们深入和灵活的去使用Oracle数据库。
文章转自数据和云公众号,原文链接
PostgreSQL Oracle 兼容性 - Oracle 19c 新特性在PostgreSQL中的使用 PostgreSQL , Oracle 兼容性 , Oracle 19c 《PostgreSQL 覆盖 Oracle 18c 重大新特性》 Oracle 19c 新特性摘自盖老师《Oracle 19c 新特性及官方文档抢鲜下载》文章,其中有一些特性在PostgreSQL中很早以前已经支持。本文旨在介绍PG如何使用这些特性。 1.Data Guard 备库DML自动重定向
Oracle 11g 新特性(一)-- 虚拟列 数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bitOracle11g 增加了虚拟列的新特性, 具体说明如下:1 只能在堆组织表(普通表)上创建虚拟列,不能在索引组织表、外部表、临时表上创建虚拟列2 虚...
分而治之:Oracle 18c 及 12.2 分区新特性的 N 种优化实践 很高兴,又和大家重聚在 DTCC 2018 的数据库性能优化专场。这次我想和大家分享与分区相关的优化特性,主要会和大家介绍一些 Oracle 最新的分区技术以及我们在日常运营中的最佳实践。
相关文章
- Oracle数据库导出整个Oracle数据库和导入整个oracle数据库命令
- Oracle数据库:oracle数据表格dmp,sql,pde格式导入与导出,视图、序列、索引等对象的导出,oracle完结,后续开启mysql的学习
- Oracle数据库:创建和删除视图view,简单和复杂视图,内建视图,topN分析,oracle分页查询
- Oracle数据库:oracle数据定义语言DDL,查询表、序列、索引、视图、创建表,修改表的列alter,rename to,删除表数据truncate和表drop
- Oracle数据库:oracle事务处理语言TCL,commit,rollback,savepoint语句
- Oracle数据库:oracle组函数,聚合函数,多行函数,avg,sum,min,max,count,group by,having
- Oracle数据库:条件表达式case when then else end,decode函数,oracle单行函数练习示例
- Oracle数据库:oracle函数嵌套,nvl函数,nvl2函数,nullif函数,coalesce合并函数
- oracle 列的归档,Oracle 开启或关闭归档模式
- Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
- Oracle Tnsping慢
- Oracle数据库的备份方法
- Oracle----date
- 《Oracle性能优化与诊断案例精选》——2.2 日久生情见真心
- 转 OracLe 数据清理
- 转 oracle 监控执行计划突然变化
- oracle 10g standby 设置
- Oracle 12.2新特性掌上手册 - 第一卷 Availability
- Oracle学习.Windows 命令行 启动ORACLE服务与实例
- Oracle创建自增字段方法-ORACLE SEQUENCE的简介
- 从数据库到云 Oracle 为IT市场注入“活力”
- Oracle 索引
- Oracle中V$SESSION等各表的字段解释,Oracle官方解释
- Oracle-多表查询