Oracle 12.2 新特性:在线的修改数据表为分区表

众所周知,分区技术是Oracle应用最为广泛的一个选件,并且历史悠久,然而在过去的版本中,如果我们要将一个现有的数据表转换为分区表,则是相当复杂的一个过程,而在 12.2 版本中,这个过程被简化为一个在线的操作。

请看以下Demo SQL语句:

CREATE TABLE sales ( order_num NUMBER, order_name VARCHAR2(128), region VARCHAR2(10)); insert into sales (1,'YHEM','BEIJING'); insert into sales (2,'ENMOTECH','SHENZHEN'); insert into sales (3,'YHEM','SHANGHAI'); ALTER TABLE sales MODIFY PARTITION BY LIST (region) (partition p1 values ('BEIJING'), partition p2 values ('SHENZHEN'), partition p3 values ('SHANGHAI'), partition p4 values (DEFAULT)) ONLINE;

在Modify修改表结构时,增加了ONLINE语句,可以直接将原有的数据表修改为分区结构。不会影响现有业务的运行。

在Live SQL站点运行一下测试语句( https://livesql.oracle.com ),可以看到顺利的完成了分区定义。事实上这个功能已经非常健壮:

那么Oracle在后台是如何完成这个DDL的重定义过程呢?

如果通过10046进行跟踪,可以发现这是一个非常复杂的内部递归过程,Oracle会建立一个日志表记录变更,然后通过Bulk Move批量迁移原有数据,最后增量应用变化数据,所以当然,你会发现这期间需要两倍的存储空间:

10046 的跟踪日志,揭示了这一过程,以下是跟踪日志中一个映射表的建立(感兴趣的同学可以从10046中找到很多原理性知识):

一个简单的操作,后台的递归执行高达2500次,大家可以想象Oracle这艘航空母舰有多么的庞大:

体验12.2,学习不止步!

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2017-01-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

【干货】大数据量下,58同城mysql实践!

WOT(World Of Tech)2015,互联网运维与开发者大会将在北京举行,会上58同城将分享《大数据量下,58同城mysql实战》的主题,干货分享抢先看...

2479
来自专栏数据和云

常识之外:全表扫描为何产生大量 db file sequential read 单块读?

编辑手记:在理解Oracle技术细节时,我们不仅应该读懂概念,还要能够通过测试验证细节,理解那些『功夫在诗外』的部分,例如全表扫描和单块读。 开发人员在进行新系...

3539
来自专栏Java学习网

MySQL大表优化方案

  当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:   单表优化   除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分...

7166
来自专栏数据和云

YH8:Oracle 12.2 New Online Feature

Andrew 曾在一次演讲中对Oracle 12c 是这样定义的:向敏捷、弹性和云三个方向上变革和演进。12.2的发布让人眼前一亮,很多新特性让我们看到Orac...

2774
来自专栏人工智能LeadAI

ElasticSearch优化系列三:索引过程

大家可能会遇到索引数据比较慢的过程。其实明白索引的原理就可以有针对性的进行优化。ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用...

3869
来自专栏数据和云

2015 OOW:Oracle的Sharding技术

在2015年OOW大会,国内很多小伙伴们一直非常关心Oracle Database 12.2中的Sharding技术实现,可是要知道在Larry Ellison...

2864
来自专栏杨建荣的学习笔记

备库CPU使用异常优化(r6笔记第73天)

一般在一些容灾环境中,尤其是在11g的ADG非常普及的场景下,备库被赋予了更多的责任,很多时候在容忍一些延迟的情况下,有些应用的大量数据查询任务直接放到了备库,...

2874
来自专栏Linyb极客之路

MySQL锁机制及优化

总的来说,MySQL各存储引擎使用了三种类型(级别)的锁定机制:行级锁定,页级锁定和表级锁定。下面我们先分析一下MySQL这三种锁定的特点和各自的优劣所在。

1582
来自专栏杨建荣的学习笔记

这样分析一个死锁问题

之前也列举了几期的MySQL死锁问题,光有操作演练,还缺少一些自己的分析,所以我就打算补充一下。 首先对于死锁问题,我们分析的背景是基于MySQL事...

2854
来自专栏数据和云

SQL之美 - Oracle 子查询优化系列精讲

题记:SQL优化及SQL审核,是从源头解决性能问题的根本手段,无论是开发人员还是DBA,都应当持续深入的学习SQL开发技能,从而为解决性能问题打下根基。 本系列...

3293

扫码关注云+社区