上篇博客《oracle分区》中讲了oracle的几种分区,并且对于oracle的典型分区如Range分区和List分区给了示例。
在实际运用Range分区时,遇到了这样的难题:
createtableTMP_LXQ_1
(
PROPOSALNO VARCHAR2(22),
STARTDATE DATE
)
partitionbyrange(STARTDATE) (
partitionpart_t01values less than(to_date('2008-01-01','yyyy-mm-dd')) ,
partitionpart_t02values less than(to_date('2009-01-01','yyyy-mm-dd')) ,
partitionpart_t03values less than(to_date('2010-01-01','yyyy-mm-dd')) ,
partitionpart_t04values less than(to_date('2011-01-01','yyyy-mm-dd')) ,
partitionpart_t05values less than(to_date('2012-01-01','yyyy-mm-dd')) ,
partitionpart_t06values less than(to_date('2013-01-01','yyyy-mm-dd')) ,
partitionpart_t07values less than(maxvalue)
);
本例中的时间只是到了2013年,然后2013年之后的时间完全放入到了maxvalue中,这确实也是一种解决办法,即有除去2008-2013年的数据时,数据库不会报错。但是这样就改变了我们分区的初衷,分区是想让各个部分的数据均衡,以加快查询。
在oracle11g出现之前,实际工作中经常会遇到这种情况,而处理这种情况,通常是由DBA或者开发人员手动进行分区或者直接定义maxvalue。
Oracle 11g的新增特性Interval分区可以解决这个问题,下面介绍一下Interval分区。
一、interval分区
INTERVAL分区是Oracle11g新增的特性,它是针对Range类型分区的一种功能拓展。对连续数据类型的Range分区,如果插入的新数据值与当前分区均不匹配,Interval-Partition特性可以实现自动的分区创建。
示例:
createtable TMP_LXQ_1
(
proposalnovarchar2(22),
startdatedate
)
partitionby range(STARTDATE)
interval(numtoyminterval(1,'year'))(
partitionpart_t01 values less than(to_date('2008-01-01','yyyy-mm-dd')) ,
partitionpart_t02 values less than(to_date('2009-01-01','yyyy-mm-dd')) ,
partitionpart_t03 values less than(to_date('2010-01-01','yyyy-mm-dd')) ,
partitionpart_t04 values less than(to_date('2011-01-01','yyyy-mm-dd')) ,
partitionpart_t05 values less than(to_date('2012-01-01','yyyy-mm-dd')) ,
partitionpart_t06 values less than(to_date('2013-01-01','yyyy-mm-dd'))
);
如果插入2014年的值,系统会自动的添加一个分区,分区范围为2014-01-01到2014-12-31日。
二、interval分区和range分区的转换
ALTERTABLE TMP_LXQ_1 SET INTERVAL (numtoyminterval(1,'year'));
对于INTERVAL分区表,新增的超过分区上限的数据会自动导致对应的INTERVAL分区被建立。
同样INTERVAL分区表可以方便的转化为RANGE分区表,只需要不输入INTERVAL的值即可:
ALTER TABLETMP_LXQ_1 SET INTERVAL ();
三、interval分区的特点
1.由range分区派生而来
2.以定长宽度创建分区(比如年、月、具体的数字(比如100、500等))
3.分区字段必须是number或date类型
4.必须至少指定一个range分区(永久分区)
5.当有记录插入时,系统根据需要自动创建新的分区和本地索引
6.已有的范围分区可被转换成间隔分区(通过ALTER TABLE SET INTERVAL选项完成)
7.IntervalPartitioning不支持支持索引组织表
8.在Interval Partitioning表上不能创建domain index
四、interval分区问题
在oracle自动创建分区的时候,系统会默认指定一个分区名,系统默认创建的分区名字与我们的分区命名规范会有一定的差距,这个问题暂时还不知道有什么解决方法。
相关推荐
前端开源库-node-interval-tree节点间隔树,实现间隔树的数据结构。
能用interval-partitioning算法设计思想解决一些贪心问题,并能用代码实现interval-partitioning 算法,以得到最优解。 一、实验目的 了解动态规划的思想,掌握0/1背包问题的基本解决方法。 二、实验要求 (1)有n...
资源分类:Python库 所属语言:Python 资源全名:interval-py-0.0.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
A Method for Interval-valued Intuitionistic Fuzzy Multiple Attribute Decision Making with Incomplete Weight Information,卫贵武,,With respect to multiple attribute decision making problems with ...
Using the method of maximizing deviations to multiple attribute decision making under interval-valued intuitionistic fuzzy environment,卫贵武,,With respect to multiple attribute decision making ...
python库。 资源全名:datetime-interval-0.1.tar.gz
标准Javascript»setInterval()间隔承诺»interval()安装npm install interval-promise用法使用async-await的简单示例const interval = require ( 'interval-promise' )// Run a function 10 times with 1 ...
基于Interval-based AHP的网络安全态势评估.pdf
区间值q-Rung模糊Choquet积分算子及其在群决策中的应用_Interval-valued q-Rung Orthopair Fuzzy Choquet Integral Operators and Its Application in Group Decision Making.pdf
npm install set-interval-async # If using Typescript, also run: npm install -D @types/set-interval-async 或使用Yarn: yarn add set-interval-async # If using Typescript, also run: yarn add -D @types/...
Methods of fuzzy rule extraction based on rough set theory are rarely reported in incomplete interval-valued fuzzy information systems. Thus, this paper deals with such systems.Instead of obtaining ...
区间树算法描述,及其说明,使用代码形式来描述区间树问题
npm install com.izaakschroeder.interval-tree-clock 用法: var seedStamp = require ( 'com.izaakschroeder.interval-tree-clock' ) ; var tmp = undefined , user1 = seedStamp , user2 = seedStamp ; tmp...
使用安装git clone git://github.com/shinout/interval-tree.gitORnpm install interval-tree用法var IntervalTree = require('interval-tree');// add interval datavar itree = new IntervalTree(300); // 300 : ...
git clone :AKSW / temporal-interval-scoping.git mvn clean eclipse:eclipse 在Eclipse中导入现有的Maven项目import ========================= Windows安装说明 从“帮助”选项卡中的Eclipse Marketplace在...
The fuzzy rough sets and generalized fuzzy rough sets have been extended by three pairs of fuzzy logical ... There are recent researches into generalized interval-valued fuzzy rough sets for inte
var createIntervalTree = require ( "interval-tree-1d" ) //Create some random list of intervals var intervals = [ [ 1 , 2 ] , [ - 1 , 0 ] , [ 0.5 , 1 ] , [ - 10 , 10 ] ] //Build tree var tree = ...
npm install math-interval-js 。 bower install math-interval-js 。 : composer require vluzrmos/math-interval-js 。 用法 简单的: Interval . test ( 1 , "[1,2]" ) ; // true Interval . test ( 3 , "...
在Oracle 9i中,按照SQL 99标准,增加了时间间隔型数据INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND,它们和其他几种数据类型一起使得对时间的处理更加准确。TIMESTAMP、TIMESTAMP WITH TIME ZONE和TIMESTAMP ...
经典的二型模糊逻辑系统学习资料,来自于mandle学习二型模糊逻辑系统必备的程序开发包