ORACLE 按时间创建分区表
有些项目中可能会涉及到表的分区(有的表大小在70G左右) 下面简单写一下创建分区表过程
1、创建测试表
首先创建测试表weihai_test语句如下
create table weihai_test (
id int notnull,
join_date DATE);
以上表中join_date字段为分区表字段
2、插入数据
2.1、模拟插入30万条数据
plsql/developer 工具执行
declare
i int := 1;
year VARCHAR2(20);
begin
loop
year :=CASE mod(i, 3)
WHEN 0 THEN
'2015-12-01 00:00:00'
WHEN 1 THEN
'2016-12-01 00:00:00'
ELSE
'2017-12-01 00:00:00'
END;
insert into weihai_test values(i, to_date(year, 'yyyy-mm-dd hh24:mi:ss'));
exit when i= 300000;
i := i+ 1;
end loop;
end;
commit;
2.2、查看是否插入成功
select count(1) from weihai_test;
3、重命名原表,生成临时表
数据插入完成后,重命名原表,这里演示的是停机之后的操作,如果是在线操作,建议使用oracle 在线重定义功能来保障数据不丢失
rename weihai_test to weihai_test_his; (这个过程只建议应用停机的时候做)
4、创建分区表
create table weihai_test (
id int notnull,
join_date DATE )
partition by range(join_date)
(
partition weihai_test_2016_less values less than (to_date('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace fmt,
partition weihai_test_2016 values less than (to_date('2017-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace fmt,
partition weihai_test_2017 values less than (to_date('2018-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace fmt,
partition weihai_test_max values less than (to_date('2999-12-31 23:59:59','yyyy-mm-ddhh24:mi:ss')) tablespace fmt
);
5、数据转移
表创建完成之后,开始导数,
insert /*+append*/ into weihai_test (
id,
join_date) select
id,
join_date from weihai_test_his;
commit;
6、数据对比
导入完成之后,对比两张表的数据,一样就表示导入成功
select count(1) from weihai_test_his;
select count(1) from weihai_test;
7、查看执行计划
查询数据,查看执行计划,与临时表weihai_test_his相比较,是否扫描的更少
explain plan for select * from weihai_test_his where join_date <= date'2016-01-01';
select plan_table_output from table(dbms_xplan.display());
同样的查询在分区表执行一遍
explain plan for select * from weihai_test where join_date <= date'2016-01-01';
select plan_table_output from table(dbms_xplan.display());
相比之下,分区表耗费的资源更少
8、删除临时表
数据导入完成之后,drop临时表
drop table weihai_test_his;
ORACLE 按时间创建分区表相关推荐
- oracle创建表分区表,oracle创建分区表
这里的第一种方式创建分区表是最近更改程序时学会的,哈哈 -- 通过create table tablename as select * from tablename (指定分区) create tab ...
- Oracle 创建分区表操作分区表
1.创建分区表语句 CREATE TABLE TABLE_NAME (DATA_DATE VARCHAR2(10) NOT NULL,UUID CHAR(32) ) PARTITION BY LIST ...
- oracle修改分区表的默认空间,Oracle数据库学习_Oracle分区表的分区占用空间为什么是8M?如何修改分区的初始空间?...
Oracle数据库学习_Oracle分区表的分区占用空间为什么是8M?如何修改分区的初始空间? 现象一描述: 在oracle12c下创建一个分区表T_A_TRADING,新建一个分区P1,P1里没有任 ...
- oracle表分区创建
文章目录 一.什么是分区表 二.分区表的种类 1.RANGE 范围分区 2.LIST 列表分区 3.HASH 散列分区 3.复合分区 三.分区表的操作 1.DML操作 2.DDL操作 1)添加分区 ( ...
- SQL SERVER 性能优化四: 创建分区表
1.整体介绍 1.1 分区表概念:分区表值得是逻辑上是一个表,物理上被存储到不同的磁盘文件中. 1.2 优势:提高查询性能:提高稳定性:便于管理:对于大数据量表备份更方便. 1.3 建立分区表主要包含 ...
- 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接
墨墨导读:本文描述如何在Oracle Cloud中创建并访问容器服务.为了简单,所有的操作都是针对root隔离区. 创建允许容器运行的政策官方文档链接 这一步是必须的,否则可以增加容器容器. 官方文档 ...
- oracle带时间查询语句,请教oracle按时间分组查询语句的写法
请教oracle按时间分组查询语句的写法 最近由于要做报表,在一张表中有一个字段为date类型,现在想要在一段时间内(比如一年)能够按照时间段分组查询记录总和,比如我要能够查询2007年到2009年间 ...
- hive创建分区表 指定分隔符_HIVE 对于分区表的操作
CREATE EXTERNAL TABLE IF NOT EXISTS data_zh( ROWKEY STRING, STATION INT, YEAR INT, MONTH INT, DAY IN ...
- SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?...
如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了. 1.数据库中某个表中的数据很多.很多是什么概念?一万条?两万条?还是十万条.一百万条?这个,我觉得是仁者见仁.智者见智的 ...
最新文章
- 【面向对象编程】(2) 类属性的定义及使用;__repr__()方法
- PostgreSQL 11 100亿 tpcb 性能测试 on ECS
- opencv计算两数组的乘积_leetcode1464_go_数组中两元素的最大乘积
- .Net Core和Jexus配置HTTPS服务
- android 系统挂载ext4格式U盘,macOS 系统下格式化 U 盘为 ext4 格式
- console和windows子系统
- rpm 安装 忽略依赖_rpm 解决依赖的方法
- mysql更改安装路径命令_如何修改mysql的安装路径
- java自动化测试_Java自动化测试(一)
- SQL server2008下载安装
- 本人做了5年Java,直到2018年11月中旬我通过学习拿到年薪80w
- matlab j计算丰水期的值,科学计算与MATLAB语言超星2020期末考试查题公众号答案
- java读取文件之BufferedReader
- Qt2D游戏开发引擎QtGameEngine使用入门5——创建一个敌对的怪物角色并自动攻击
- 因数(factor)
- 凯撒密码C语言去掉空格字符,凯撒密码C语言实现
- 磁盘满了怎么清理之空间占用分析软件SpaceSniffer
- R语言实现双变量分析教程
- 【车间调度】模拟退火算法求解车间调度(jobshop-3)问题【含Matlab源码 1082期】
- IntelliJ IDEA)中弹出“IntelliJ IDEA License Activation”时怎么办
热门文章
- Intent的基本使用
- 一文读懂 select count(*) 底层原理
- Veritas NetBackup8.1.1设置备份
- 现代存储架构:磁带存储在数据中心重生
- 北邮803考研经验杂谈
- deeplink跳转快应用返回出现两次系统添加桌面的弹框
- Cousera Recommender System专项课程 Assignment2
- java关于对于word或者pdf文件的批量下载实现,其中包括(Java实现创建word文档模板,根据模板导出word文档)
- 安全邮箱是什么邮箱?怎么登录163邮箱?
- 服装ERP软件首要的好处都有哪些?