oracle分区表按时间自动创建
表分区是一种思想,分区表示一种技术实现。当表的大小过G的时候可以考虑进行表分区,提高查询效率,均衡IO。oracle分区表是oracle数据库提供的一种表分区的实现形式。表进行分区后,逻辑上仍然是一张表,原来的查询SQL同样生效,同时可以采用使用分区查询来优化SQL查询效率,不至于每次都扫描整个表。
根据年: INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))
根据月: INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))
根据天: INTERVAL(NUMTODSINTERVAL(1,'DAY'))
根据时分秒: NUMTODSINTERVAL( n, { 'DAY'|'HOUR'|'MINUTE'|'SECOND'})
此时已经有普通表了,我创建了含相同字段的分区表,把数据导入到分区表中,再把原表删掉。
-- Create table(WMS_OPERATION_RECORD)
create table DPHOMEWMS.WMS_OPERATION_RECORD_TMP
(
ID NUMBER(19) not null,
WAREHOUSE_ID NUMBER(19),
ASN_ID NUMBER(19),
PICK_TICKET_ID NUMBER(19),
RELATION_CODE VARCHAR2(50),
OPERATION_TYPE VARCHAR2(50),
OPERATION_ID NUMBER(19),
OPERATION_NAME VARCHAR2(50 CHAR),
OPERATION_TIME TIMESTAMP(6) DEFAULT systimestamp not null,
STATUS VARCHAR2(10),
TYPE VARCHAR2(10),
COUNTS NUMBER(10)
)tablespace DPHOMEWMS_DATA
PARTITION BY RANGE (OPERATION_TIME) interval (numtoyminterval(1, 'month'))
STORE IN (DPHOMEWMS_DATA)
(
partition OPERATION_RECORD_P01 values less than (TIMESTAMP' 2017-05-08 00:00:00')
tablespace DPHOMEWMS_DATA
);
-- Add comments to the columns
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.WAREHOUSE_ID
is '仓库id';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.ASN_ID
is '收货单id';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.PICK_TICKET_ID
is '发货单ID';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.RELATION_CODE
is '关联单据号(收货单或发货单的code)';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.OPERATION_TYPE
is '操作类型';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.OPERATION_ID
is '操作人ID';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.OPERATION_NAME
is '操作人名称';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.OPERATION_TIME
is '操作时间';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.STATUS
is '状态';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.TYPE
is '明细或者统计次数类型';
comment on column DPHOMEWMS.WMS_OPERATION_RECORD_TMP.COUNTS
is '统计次数';
--创建本地索引
create index IDX_WMS_OPERATION_RECORD on DPHOMEWMS.WMS_OPERATION_RECORD_TMP(RELATION_CODE)
tablespace DPHOMEWMS_INDEX local;
update DPHOMEWMS.WMS_OPERATION_RECORD set OPERATION_TIME = sysdate where OPERATION_TIME is null;
insert into DPHOMEWMS.WMS_OPERATION_RECORD_TMP select * from WMS_OPERATION_RECORD;
drop table DPHOMEWMS.WMS_OPERATION_RECORD;
alter table DPHOMEWMS.WMS_OPERATION_RECORD_TMP rename to WMS_OPERATION_RECORD;
alter table DPHOMEWMS.WMS_OPERATION_RECORD enable row movement;
(1)OPERATION_TIME是分区键,每一个月会自动创建一个分区,分区键不允许为null。
(2)alter table table_name enable row movement; 是指允许分区表的分区键是可更新,当某一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,如果开启了这个选项,就会把这行从这个分区中delete掉,并加到更新后所属的分区,此时就会发生rowid的改变。相当于一个隐式的delete+insert,但是不会触发insert/delete触发器。如果没有开启这个选项,就会在更新时报错。
oracle分区表按时间自动创建的更多相关文章
- Python中根据时间自动创建文件夹
导语 电脑桌面文件太多查找起来比较花费时间,并且凌乱的电脑桌面也会影响工作心情,于是利用python根据时间自动建立当日文件夹,这样就可以把桌面上文件按时间进行存放. 代码实现 # _*_codi ...
- (转)Oracle分区表和索引的创建与管理
今天用到了Oracle表的分区,就顺便写几个例子把这个表的分区说一说: 一.创建分区表 1.范围分区 根据数据表字段值的范围进行分区 举个例子,根据学生的不同分数对分数表进行分区,创建一个分区表如下: ...
- 转 :Oracle分区表 (Partition Table) 的创建及管理
三.删除分区 You can drop partitions from range, list, or composite range-list partitioned tables. ALTER T ...
- oracle表按日期分区创建、新增、修改、删除
Oracle11G分区表 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区.表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多 ...
- Activiti 配置Oracle不能自动创建表解决方法
使用配置文件创建工作流表 <bean id="processEngineConfiguration" class="org.activiti.engine.impl ...
- spring data jpa之Auditing 表的创建时间,更新时间自动生成策略
java实际编程中,几乎每一张表都会有createTime和updateTime字段,spring的优秀之处在于只要用几个注解,就帮我们解决该类问题,具体实现: 1,实体类添加注解: @EntityL ...
- ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Oracle分区表
先说句题外话- 欢迎成都天府软件园的小伙伴来面基交流经验~ 一:什么是分区(Partition)? 分区是将一个表或索引物理地分解为多个更小.更可管理的部分. 分区对应用透明,即对访问数据库的应用 ...
- Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Orac ...
随机推荐
- 异常:Neither BindingResult nor plain target object for bean name 'command' available as request attribute
Neither BindingResult nor plain target object for bean name 'command' available as request attribute ...
- Spring 整合Hibernate 示例
虽然Spring整合Hibernate早就会了,但经常在创建项目整合这两个框架的时候出一些低级错误.所以在这里写一个示例,以后再遇到错误时,再把遇到的错误或异常添加上. 一.创建一个动态WEB工程,添 ...
- interaction-oriented architecture - MVC
MVC(Model-View-Controller),它是专门针 对交互系统提出的,所以如果我们要构建一个交互系统,那么我们就可以直接应用MVC模式,然后 在该模式所搭建的场景的启发下去发现Model ...
- BZOJ4602:[SDOI2016]齿轮(并查集)
Description 现有一个传动系统,包含了N个组合齿轮和M个链条.每一个链条连接了两个组合齿轮u和v,并提供了一个传动比x : y.即如果只考虑这两个组合齿轮,编号为u的齿轮转动x圈,编号为v ...
- CF13C Sequence
嘟嘟嘟 偶然看到的这道题,觉得有点意思,就做了. 首先题里说修改后的数列只能出现修改前的数,那么状态之间的转移也就之可能在这些数之间. 令f[i][j]表示第 i 个数改成原序列第 j 小的数时的最小 ...
- PHP------知识复习
PHP概述 (1)PHP(Hypertext Perprocessor)超级文本预处理器 (2) PHP是一种在服务器端执行的嵌入HTML文档的脚本语言 (3) 是一种网站开发语言(B/S结构) ( ...
- shiro密码的比对,密码的MD5加密,MD5盐值加密,多个Relme
有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 密码的比对 通过AuthenticatingRealm的CredentialsMatcher方法 密码的加密 ...
- 使用npm uninstall卸载express无效
最近在看<node.js开发指南>学习node.js,因为书是2012年的书,对应的各种软件.包的版本就特别老,其中第五章用到express,书中版本用的是2.X版本,而我这边通过npm ...
- DML-修改
一, 修改单表的记录 语法: update 表名 set 字段=值[where 筛选条件] 二,修改多表 update 表名 别名 inner/left/rigth join 表二 on 连接条件 s ...
- iOS安装CocoaPods详细过程
iOS安装CocoaPods详细过程 一.简介 什么是CocoaPods CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的 ...