18c新特性系列回顾:
Oracle 18c新特性详解-多租户专题:www.jianshu.com/p/4d4fc1d51…
Oracle 18c新特性详解:In-Memory 专题:www.jianshu.com/p/239447b8c…
今天分享跟表相关的特性。
新特性1:联机表操作
在Oracle 12.2中,支持表两种联机操作:
1、在线表移动 online table move:将表从一个表空间在线移动到另一个表空间。
2、分区分裂:对分区表中现有分区再次进行分裂
3、在线分区:将非分区表改为分区表
在Oracle 18c中,将增加以下两种表的在线操作:
4、表分区合并:将现在的分区表改变为非分区表
5、表分区重构:一种形式的分区变更为另一种形式的分区。
如下:
•Oracle Database 11g Release 1
–创建索引
–列上加缺省值
–加约束
•Oracle Database 12c Release 1
–删除索引
–删除约束
–设置为unused列
–表分区移动
如果你的表分区太多不方便,而数据又不太频繁地更新,可以将分区合并为更大的分区,简化管理。这在数据库的以前版本中也可以做到,但是不能联机操作,合并的同时数据无法访问。在Oracle数据库18c中,你可以在线合并分区并维护索引。这个版本里,对表的所有在线操作都齐全了,功能算是完整了。
新特性2:多态表的支持
在18c中,提出了对多态表的支持,多态表中行的类型可以在定义时声明或不声明。多态表函数利用动态SQL功能来创建功能强大且复杂的自定义函数。这对于要求具有适用于任意输入表或查询的通用扩展的接口的应用程序很有用。
在多态表中封装了更复杂的算法,从而实现隐藏算法,能够利用强大的,动态SQL功能,通过任何表格式进行处理,最终返回SQL行集 (表,JSON, XML doc等)
Inline外部表能够透明访问外部表。使外部表的运行时定义成为SQL语句的一部分,通过SQL直接调用,无需创建仅需一次使用的外部表,也无需在数据字典中创建外部表作为持久数据库对象。这使得开发灵活了很多,简化了访问外部数据的过程。也减少了大量元数据的处理,实现更高效的数据库应用程序。
以前的版本中,访问外部表是这样操作的:
CREATE TABLE sales_xt
(prod_idnumber, …)
TYPE ORACLE_LOADER
…
LOCATION ’new_sales_kw13')
REJECT LIMIT UNLIMITED );
INSERT INTO sales SELECT * FROM sales_xt;
DROP TABLE sales_xt;
通过inline外部表的引入,可以以更简单的方式实现:
INSERT INTO sales
SELECT sales_xt.*
FROM EXTERNAL( (prod_idnumber, …)
TYPE ORACLE_LOADER
…
LOCATION’new_sales_kw13')
REJECT LIMIT UNLIMITED);
新特性4:In-Memory 对外部表的支持
Oracle 18c中支持IM对外部表的访问,外部表使得Oracle对外部数据操作更加灵活,并且基于内存列式存储压缩,能够更快的支持大数据量的运算,对于数据仓库环境将会是极大的增强。并且由于外部表的数据基本处于静态,更适合使用In-Memory来处理,Oracle声称这一改进将会带来100倍的提升。
我们知道,临时表是短暂存在的表,只适用于报表类程序。在Oracle数据库18c中,Oracle为临时表提供了更灵活的使用:私有临时表,一个在内存中用完即弃的临时对象。如果开发人员需要为不同的事务创建不同的临时表,或在只读数据库使用临时表时,都可以使用私有临时表。这种方法为开发人员提供了更大的灵活性。
18c中,推出了 Shadow lost write新特性,Shadow lost write在可能导致严重数据损坏之前检测到丢失的写入。 可以为数据库,表空间或数据文件启用Shadow lost write保护,在故障时提供快速检测和即时响应,最大限度地减少因数据损坏而在数据库中发生的数据丢失,而无需Oracle Data Guard备用数据库。
该特性的实现方式就是在数据库中创建shadow tablespace,在创建表空间的语句中附加 LOST WRITE PROTECTION即可。
在创建表空间之后,需要使用alter Database/alter pluggable database 语句为数据库开启或者禁用shadow tablespace。
这一新特性,我们在18c体系架构图中也有表达:
关于多租户新特性:www.jianshu.com/p/4d4fc1d51…
关于In-Memory新特性:www.jianshu.com/p/239447b8c…