INTERVAL分区升级了,你知道吗?!

辑手记:

Oracle 11g新增的INTERVAL分区使得手工给RANGE分区添加新分区的工作变得异常简单,这也使得INTERVAL分区成为RANGE分区的最佳选择。

新增的INTERVAL分区的特点:

特点一:

更方便的是,INTERVAL分区并非必须在表创建的时候指定,即使RANGE分区表已经建立,也可以修改为使其变为INTERVAL分区:

小贴士

这使得现有的所有RANGE分区表都可以利用INTERVAL分区的优点,而且INTERVAL方式分区也支持复合分区,INTERVAL-HASH、INTERVAL-LIST和INTERVAL-RANGE三种分区方式都是支持的。

注意:

由于INTERVAL的分区是根据需要自动创建,因此需要使用子分区模板来确定新增分区的子分区如何建立,如果没有建立子分区模板,则新增的分区只会包含一个子分区。

特点二:

INTERVAL分区的另一个特点就是不允许分区键值为空值:

小贴士

这个限制其实也很好理解,由于INTERVAL分区不存在MAXVALUE分区,因此NULL值“大于”所有的分区键值。

如果分区键值可能为空,那么INTERVAL分区就不适用,不过分区键值为空的情况本身就十分罕见。

其实顾名思义INTERVAL分区需要提供一个INTERVAL,而对于字符类型是不存在INTERVAL的,因此只有NUMBER类型和DATE类型支持INTERVAL分区。

其中NUMBER类型的INTERVAL分区很简单,因此这里仅描述相对复杂一点的DATE类型的INTERVAL分区。

对于INTERVAL值的限定,有两种方法。

01

通过NUMTOYMINTERVAL或NUMTODSINTERAL函数:

02

直接利用INTERVAL表达式:

无论使用哪种方法,其实都是INTERVAL的方式,这种方式和ADD_MONTHS函数不同,不会自动处理月末的问题,因此以月为单位的INTERVAL不能以超过28日的日期作为最后一个范围分区的上限:

避免这种错误其实很简单,最简单的是利用28日作为分区上限:

或者再建立一个最高分区,避免超过28日的日志作为最后一个分区的上限出现:

注意:

这里的DATE是泛指,包括DATE、TIMESTANP、TIMESTAMP WITH ZONE和TIMESTAMP WITH LOCAL ZONE多个日期相关的数据类型。

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

原文发表时间:2017-08-07

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蜉蝣禅修之道

Mysql学习笔记(一)创建触发器

1501
来自专栏Pythonista

Golang基本结构之练习(day2)

2. 一个程序包含两个包add和main,其中add包中有两个变量:Name和age。请问main 包中如何访问Name和age?

662
来自专栏Linux内核

Linux OOM机制分析

oom_killer(out of memory killer)是Linux内核的一种内存管理机制,在系统可用内存较少的情况下,内核为保证系统还能够继续运行下去...

1577
来自专栏飞扬的花生

ASP.MVC时间类型json数据处理

      服务端返回DateTime属性如果用自带的json方法返回的数据如下: ? 有2种办法解决一种是采用服务端解决方案,一种是使用前端解决方案 1.前端...

1679
来自专栏分布式系统进阶

Librdkafka的基础数据结构 3 -- Buffer相关 2

773
来自专栏GuZhenYin

2014/11/06 Oracle触发器初步 2014-11-06 09:03 49人阅读 评论(0)

触发器我就不多解释了,保证数据的完整性的神器,嗯..也是减少程序员工作托管给数据库操作的好帮手.就不讲一些大道理了.通俗点,我们对数据库的操作,无非就是增 删 ...

1746
来自专栏C/C++基础

C++利用MSQL API连接和操作数据库

在Windows平台,我们可以使用ADO、ODBC或者MySQL API进行连接和操作。ADO (ActiveX Data Objects,ActiveX数据对...

601
来自专栏于晓飞的专栏

java 容器 --- Collections

761
来自专栏蓝天

同时具备多线程和多进程安全的写日志工具

接口请浏览:https://github.com/eyjian/mooon/blob/master/mooon/include/mooon/sys/log.h ...

814
来自专栏闻道于事

JFinal极速开发框架使用笔记(三) 分析Model和ActiveRecord

JFinal框架的一些新发现的用法: 在JFinal框架中,实体类并不需要设置属性,更不需要配置getset方法就可以很方便的操作数据库,如果需要设置或者获取属...

3308

扫描关注云+社区