欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

oracle 11g表智能按月分区

程序员文章站 2024-01-06 16:05:34
...

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 之前日志表700多万数据,涉及到日志表的业务查询速度很慢一个月的数据查询也将近30秒左右,研究发现oracle有表分区功能 11G更加有智能按月分区功能 开干: 前提确认能的表可以分区 第一步,先创建分

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

之前日志表700多万数据,涉及到日志表的业务查询速度很慢一个月的数据查询也将近30秒左右,研究发现oracle有表分区功能 11G更加有智能按月分区功能 开干:

前提确认能的表可以分区

第一步,先创建分区的表

--INTERVAL分区

--这个其实是范围分区的增强功能,通过这个功能可以实现在需要的时候自动的实现新的分区的添加,从而省去了你不断的ADD或者SPLIT新的分区。

CREATE TABLE SYS_LOG_TEM(pid NUMBER not null,

yhdm VARCHAR2(30),

bmdm VARCHAR2(12),

pdaid VARCHAR2(512),

simid VARCHAR2(50),

logmodule VARCHAR2(1),

logtype VARCHAR2(4),

operatetype CHAR(1),

methodname VARCHAR2(100),

methodinfo VARCHAR2(2000),

execstatus VARCHAR2(1),

execerrorinfo VARCHAR2(1000),

alltimespent NUMBER,

proxytimespent NUMBER,

logcontent VARCHAR2(4000),

logtime DATE default sysdate,

memo VARCHAR2(200),

returnflag CHAR(1),

returninfo VARCHAR2(1000),

gpsx VARCHAR2(20),

gpsy VARCHAR2(20))

PARTITION BY RANGE (logtime)

INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))

(PARTITION P1 VALUES LESS THAN (TO_DATE('2012-4-1', 'YYYY-MM-DD')));

(因为我表里目前的数据最小的是4月份的,所以我让它从四月份开始分区)

[1] [2] [3]

oracle 11g表智能按月分区