oracle表分区

原文地址:https://www.cnblogs.com/gemine/p/9011898.html

oracle 的 Partition

分区表概念:

1、当一个表中的数据量达到一定程度后,查询速度会变慢,影响应用的性能,此时可以考虑进行表分区,分区后逻辑上还是一张表,只是将数据在物理上存放到多个表空间,这样查询时不用每次都整表扫描。

注意事项:

1、已经存在的表没有方法可以直接转化为分区表;

2、不在分区字段上建立分区索引,在别的字段上建立索引相当于全局索引。效率低

3、11g 中的分区技术在易用性和可扩展性上再次得到了增强

numtoyminterval函数——数字转换函数

  语法:NUMTOYMINTERVAL ( n , 'char_expr' )
   n:步长,每隔n个日期

  char_expr:日期描述,可以是YEAR和MONTH;

分区有自动分区,预先分区

按天、周、月、年自动分区:

numtoyminterval(1, 'year') 

numtoyminterval(1, 'month')

NUMTODSINTERVAL(1, 'day')

NUMTODSINTERVAL (7, 'day')

例如按月自动分区:

CREAT TABLE TABLE1

(
   TABLE_ID NUMBER(8),
   SUB_DATE DATE,
   VALUE NUMBER(8)
 
)
PARTITION BY RANGE(SUB_DATE)
INTERVAL(NUMTOYMINTERVAL(1'MONTH'))
(
  PARTITION P1 VALUES LESS THAN(TO_DATE('2014-05-01','YYYY-MM-DD'))
);

非自动分区:

partition by range (DATE_TIME)
(
partition KMS_ANALYSIS_DATA_2016Q1 values less than (TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace TBS_GTOS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),)
原文地址:https://www.cnblogs.com/zyanrong/p/11872652.html