Oracle白天自动分区

时间:2013-10-10 14:48:15

标签: oracle oracle11g oracle-sqldeveloper partitioning

我正在使用Oracle 11g数据库,每天输入3-5百万行。将来我想使用基于Timestamp列的分区。我的目标是自动为每天创建一个新分区。

我刚刚找到了创建给定天数的方法,即1-20但不是无限时间(01.01.2014到mm.dd.yyyy)。

1 个答案:

答案 0 :(得分:4)

Oracle 11g确实提供了自动分区创建,您只需要创建具有正确语法的表,如下所示:

create table 
pos_data ( 
   start_date        DATE,
   store_id          NUMBER,
   inventory_id      NUMBER(6),
   qty_sold          NUMBER(3)
) 
PARTITION BY RANGE (start_date) 
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH')) 
(  
   PARTITION pos_data_p2 VALUES LESS THAN (TO_DATE('1-7-2007', 'DD-MM-YYYY')),
   PARTITION pos_data_p3 VALUES LESS THAN (TO_DATE('1-8-2007', 'DD-MM-YYYY')) 
); 

此处,已定义了两个分区,并指定了一个月的间隔。如果date超出partition中指定的最大日期,则oracle会自动创建新分区。

同样,您可以为日期范围指定分区,oracle将负责休息。