Oracle 11g 通过间隔分区实现按月创建表分区

在项目数据库设计过程中由于单表的数据量非常庞大,需要对表进行分区处理。由于表中的数据是历史交易,故按月分区,提升查询和管理。

由于之前对于表分区了解不多,为了实现上述功能查了很多资料,一开始的方向是通过Crontab调用Shell脚本来按月自动创建分区,或者使用Oracle的Job调用存储过程来自动创建分区。在研究上述两套方案的过程中,无意发现Oracle11g有间隔分区功能,对于使用Range分区的可以按年,月,日来自动生成分区。语法如下:

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‘))
);

2014年5月1日前的数据会放入p1分区,5月1日后的数据每月只要有数据,就会自动创建一个分区。

Oracle 11g 通过间隔分区实现按月创建表分区

时间: 2024-11-03 22:30:21

Oracle 11g 通过间隔分区实现按月创建表分区的相关文章

oracle11g interval(numtoyminterval())自动创建表分区

Oracle11g通过间隔分区实现按月创建表分区 在项目数据库设计过程中由于单表的数据量非常庞大,需要对表进行分区处理.由于表中的数据是历史交易,故按月分区,提升查询和管理. 由于之前对于表分区了解不多,为了实现上述功能查了很多资料,一开始的方向是通过Crontab调用Shell脚本来按月自动创建分区,或者使用Oracle的Job调用存储过程来自动创建分区.在研究上述两套方案的过程中,无意发现Oracle11g有间隔分区功能,对于使用Range分区的可以按年,月,日来自动生成分区.语法如下: ?

oracle 11g rac dbca建库时提示创建监听

Oracle 11g rac dbca建库时提示创建监听 在安装oracle 11g rac时,使用dbca建库的过程中提示需要创建监听: Default Listener "LISTENER" is not configured in Grid Infrantructure home.Use NetCA to configure Default Listener and return DBCA 解决步骤如下 因为oracle 11g rac在安装过程中会自动创建监听,无需手动创建,首

Oracle 11G在用EXP 导出时,空表不能导出解决[转]

转自:http://wanwentao.blog.51cto.com/2406488/545154 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME         

解决Oracle 11g在用EXP导出时,空表不能导出

一.问题原因:     11G中有个新特性,当表无数据时,不分配segment,以节省空间     1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME                                 TYPE        VALU

MYSQL定时创建表分区

一.存储过程-表分区-----------------------------------------------------------------需求: 每月创建一个分区 分区名名称格式:p201201,p201202……------------------------------------------ 1 CREATE DEFINER = `root`@`%` PROCEDURE `Auto_Create_Partition`(IN `databaseName` varchar(50),

mysql创建表分区

MySQL创建表分区 create table erp_bill_index( id int primary key auto_increment, addtime datetime ); insert into erp_bill_index(addtime) values ('2018-02-01 12:00:00'), ('2018-03-01 12:00:00'), ('2018-04-01 12:00:00'), ('2018-05-01 12:00:00'), ('2018-06-01

Oracle 创建表分区

create table TableName1( id CHAR(36) not null, samplingdate TIMESTAMP(6) not null, instantaneousflow NUMBER(10,3), totalflow NUMBER(10), flowmeterid CHAR(36) not null, receivetime TIMESTAMP(6), inserttime TIMESTAMP(6));partition by range (SAMPLINGDAT

SQL Server 创建表分区

先准备测试表 CREATE TABLE [dbo].[Employee] ( EmployeeNo INT IDENTITY(1,1) PRIMARY KEY, EmployeeName NVARCHAR(50) NULL ); 插入一些数据 INSERT Employee DEFAULT VALUES; GO 10000 UPDATE Employee set EmployeeName = 'Employee ' + CONVERT(VARCHAR, EmployeeNo) 创建文件组 创建文

Oracle 11G的间隔(INTERVAL)分区

-- Create table create table MS_BIGTABLE_LOG ( record_date DATE, col_1 VARCHAR2(2000), col_2 VARCHAR2(2000) ) PARTITION BY RANGE (record_date) INTERVAL (numtodsinterval(1,'day')) ( PARTITION P1 VALUES LESS THAN (TO_DATE('2014-1-1', 'YYYY-MM-DD')), PA