一般一张表超过2G的大小,ORACLE是推荐使用分区表的。pv表、接口调用记录表通常增长较快,且通常包含创建时间字段。创建时间多用date类型或者timestamp时间戳类型。关于按date类型分区,网上资料一搜一大把,这里就不详细介绍了。但是,关于按timestamp类型分区,网上资料就很少啦。其实也很简单,跟date类型很类似,估计是网上各位大佬懒得说才难以找到。这里我做简要记录,以便日后参考。
**
1、按时间戳创建固定分区
**
CREATE TABLE TEST_CARD (
ID NUMBER (19) NOT NULL,
CREATEDATE TIMESTAMP (6)
) PARTITION BY RANGE (CREATEDATE)(
PARTITION P2020028213030
VALUES
LESS THAN (
TIMESTAMP '2020-02-28 21:30:00'
),
PARTITION P2020028213300
VALUES
LESS THAN (
TIMESTAMP '2020-02-28 21:33:00'
),
PARTITION PMAX
VALUES
LESS THAN (MAXVALUE)
);
**
2、按时间戳创建分区(按年、月、日、时、分、秒)
**
numtodsinterval(x,c),x是一个数字,c是一个字符串,
表明x的单位,这个函数把x转为interval day to second数据类型
常用的单位有 (‘day’,‘hour’,‘minute’,‘second’)
numtoyminterval与numtodsinterval函数类似,将x转为interval year to month数据类型
常用的单位有’year’,‘month’
CREATE TABLE TEST_CARD2 (
ID NUMBER (20) NOT NULL,
CREATEDATE TIMESTAMP (6)
) PARTITION BY RANGE (CREATEDATE)
INTERVAL (numtoyminterval(1, 'month'))
(
PARTITION P2020028213030
VALUES
LESS THAN (
to_TIMESTAMP('2020-02-28 21:30:30','yyyy-mm-dd hh24:mi:ss')
)
);
本文详细介绍在Oracle数据库中如何按timestamp类型进行分区,包括创建固定分区和按年、月、日、时、分、秒动态分区的方法。通过具体实例展示如何使用numtodsinterval和numtoyminterval函数。
1777

被折叠的 条评论
为什么被折叠?



