按照时间,每天分区;按照数字,200000一个分区
2016-10-07 19:21
253 查看
按照时间,每天分区
create table test_p(id number,createtime date)
partition by range(createtime) interval(numtodsinterval(1,'day')) store in (users)
(
partition test_p_p1 values less than(to_date('20140110','yyyymmdd'))
);
create index index_test_p_id on test_p(id) local;
create index index_test_p_createtime test_p(createtime) local;
按照数字,200000一个分区
create table test_p(id number,createtime date)
partition by range(id) interval(200000) store in (users)
(
partition test_p_p1 values less than(200000)
);
create index index_test_p_id on test_p(id) local;
create index index_test_p_createtime test_p(createtime) local;
interval-partitioned
table(间隔分区表),即由oracle数据库在间隔分区表上自动创建分区,无需再自己写存储过程或其他脚本来实现自动创建分区了。当然,间隔分区表的分区指定列只能为表的单个列,且该列只能为NUMBER或DATE类型。 间隔分区必须是基于范围分区,可以只是范围分区,也可以是组合分区如RANGE-LIST、RANGE-HASH等。
EXP
创建按月间隔分区表
CREATE TABLE tab_part_month
(
t_id NUMBER,
t_date DATE,
t_txt VARCHAR2(20)
)
PARTITION BY RANGE(t_date)
INTERVAL (numtoyminterval(1,'month'))
(
PARTITION p0 VALUES LESS THAN(to_date('20080101','yyyymmdd')),
PARTITION p1 VALUES LESS THAN(to_date('20090101','yyyymmdd'))
);
INSERT INTO tab_part_month
VALUES(1,to_date('20070301','yyyymmdd'),'hihi');
INSERT INTO tab_part_month
VALUES(1,to_date('20080301','yyyymmdd'),'hihi');
INSERT INTO tab_part_month
VALUES(1,to_date('20100301','yyyymmdd'),'hihi');
备注:这是一个按月间隔分区表,分区列为t_date日期列,INTERVAL
(numtoyminterval(1,'month'))即为间隔分区的语句,数字1指定间隔频率,此时为按月分区,如果改为3则为每3个月分一个区,按日间隔分区将其改以下语句:INTERVAL (Numtodsinterval(10,'DAY'))。在上面语句中,CREATE语句中创建了p0、p1分区,在执行完前两条INSERT语句后该表分区并未增加,直到插入第三条语句后数据库自动增加一个新分区。
create table test_p(id number,createtime date)
partition by range(createtime) interval(numtodsinterval(1,'day')) store in (users)
(
partition test_p_p1 values less than(to_date('20140110','yyyymmdd'))
);
create index index_test_p_id on test_p(id) local;
create index index_test_p_createtime test_p(createtime) local;
按照数字,200000一个分区
create table test_p(id number,createtime date)
partition by range(id) interval(200000) store in (users)
(
partition test_p_p1 values less than(200000)
);
create index index_test_p_id on test_p(id) local;
create index index_test_p_createtime test_p(createtime) local;
interval-partitioned
table(间隔分区表),即由oracle数据库在间隔分区表上自动创建分区,无需再自己写存储过程或其他脚本来实现自动创建分区了。当然,间隔分区表的分区指定列只能为表的单个列,且该列只能为NUMBER或DATE类型。 间隔分区必须是基于范围分区,可以只是范围分区,也可以是组合分区如RANGE-LIST、RANGE-HASH等。
EXP
创建按月间隔分区表
CREATE TABLE tab_part_month
(
t_id NUMBER,
t_date DATE,
t_txt VARCHAR2(20)
)
PARTITION BY RANGE(t_date)
INTERVAL (numtoyminterval(1,'month'))
(
PARTITION p0 VALUES LESS THAN(to_date('20080101','yyyymmdd')),
PARTITION p1 VALUES LESS THAN(to_date('20090101','yyyymmdd'))
);
INSERT INTO tab_part_month
VALUES(1,to_date('20070301','yyyymmdd'),'hihi');
INSERT INTO tab_part_month
VALUES(1,to_date('20080301','yyyymmdd'),'hihi');
INSERT INTO tab_part_month
VALUES(1,to_date('20100301','yyyymmdd'),'hihi');
备注:这是一个按月间隔分区表,分区列为t_date日期列,INTERVAL
(numtoyminterval(1,'month'))即为间隔分区的语句,数字1指定间隔频率,此时为按月分区,如果改为3则为每3个月分一个区,按日间隔分区将其改以下语句:INTERVAL (Numtodsinterval(10,'DAY'))。在上面语句中,CREATE语句中创建了p0、p1分区,在执行完前两条INSERT语句后该表分区并未增加,直到插入第三条语句后数据库自动增加一个新分区。
相关文章推荐
- SQL截取一个字段中不确定字母和数字并按照数字顺序排序
- 数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)
- 一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
- js,将一个整数数组先按照因子数量排序,再按照数字大小排序 Version2
- 输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 时间复杂度O(N) 空间复杂度O(N)
- 数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:
- 检测是一个时间串或一个数字串是否连续
- java-51-输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
- 【练习】输入一个已经按升序排序过的数组和一个数字sum,在数组中查找两个数,使得它们 的和正好是输入的那个数字sum,要求时间复杂度为O(n)
- 从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。
- 每天一个知识点linux(八)手动创建交换分区
- 每天学习一算法系列(5)(已知两个数组,数组里的元素有正有负,但是都是按照从小到大已经排好序,要求用尽可能小的时间复杂度编写一算法求出两个数组的最大交集)
- 判断一个整数数组中是否有重复数字出现的O(n)时间复杂度算法
- js,将一个整数数组先按照因子数量排序,再按照数字大小排序
- 每天学习一算法系列(18)(n 个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m 个数字)
- 数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:
- 两个数字,1000个元素的有序数组和10个元素的无序数组,把他们整合成一个按照有序数组排序方式排序的有序数组
- 某种传染病第一天只有一个患者,前五天为潜伏期,不发作也不会传染人 第6天开始发作,从发作到治愈需要5天时间,期间每天传染3个人 求第N天共有多少患者
- 输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字 时间复杂度O(NlogN)
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字