有些项目中可能会涉及到表的分区(有的表大小在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 按时间创建分区表相关推荐

  1. oracle创建表分区表,oracle创建分区表

    这里的第一种方式创建分区表是最近更改程序时学会的,哈哈 -- 通过create table tablename as select * from tablename (指定分区) create tab ...

  2. Oracle 创建分区表操作分区表

    1.创建分区表语句 CREATE TABLE TABLE_NAME (DATA_DATE VARCHAR2(10) NOT NULL,UUID CHAR(32) ) PARTITION BY LIST ...

  3. oracle修改分区表的默认空间,Oracle数据库学习_Oracle分区表的分区占用空间为什么是8M?如何修改分区的初始空间?...

    Oracle数据库学习_Oracle分区表的分区占用空间为什么是8M?如何修改分区的初始空间? 现象一描述: 在oracle12c下创建一个分区表T_A_TRADING,新建一个分区P1,P1里没有任 ...

  4. oracle表分区创建

    文章目录 一.什么是分区表 二.分区表的种类 1.RANGE 范围分区 2.LIST 列表分区 3.HASH 散列分区 3.复合分区 三.分区表的操作 1.DML操作 2.DDL操作 1)添加分区 ( ...

  5. SQL SERVER 性能优化四: 创建分区表

    1.整体介绍 1.1 分区表概念:分区表值得是逻辑上是一个表,物理上被存储到不同的磁盘文件中. 1.2 优势:提高查询性能:提高稳定性:便于管理:对于大数据量表备份更方便. 1.3 建立分区表主要包含 ...

  6. 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接

    墨墨导读:本文描述如何在Oracle Cloud中创建并访问容器服务.为了简单,所有的操作都是针对root隔离区. 创建允许容器运行的政策官方文档链接 这一步是必须的,否则可以增加容器容器. 官方文档 ...

  7. oracle带时间查询语句,请教oracle按时间分组查询语句的写法

    请教oracle按时间分组查询语句的写法 最近由于要做报表,在一张表中有一个字段为date类型,现在想要在一段时间内(比如一年)能够按照时间段分组查询记录总和,比如我要能够查询2007年到2009年间 ...

  8. hive创建分区表 指定分隔符_HIVE 对于分区表的操作

    CREATE EXTERNAL TABLE IF NOT EXISTS data_zh( ROWKEY STRING, STATION INT, YEAR INT, MONTH INT, DAY IN ...

  9. SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?...

    如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了. 1.数据库中某个表中的数据很多.很多是什么概念?一万条?两万条?还是十万条.一百万条?这个,我觉得是仁者见仁.智者见智的 ...

最新文章

  1. 【面向对象编程】(2) 类属性的定义及使用;__repr__()方法
  2. PostgreSQL 11 100亿 tpcb 性能测试 on ECS
  3. opencv计算两数组的乘积_leetcode1464_go_数组中两元素的最大乘积
  4. .Net Core和Jexus配置HTTPS服务
  5. android 系统挂载ext4格式U盘,macOS 系统下格式化 U 盘为 ext4 格式
  6. console和windows子系统
  7. rpm 安装 忽略依赖_rpm 解决依赖的方法
  8. mysql更改安装路径命令_如何修改mysql的安装路径
  9. java自动化测试_Java自动化测试(一)
  10. SQL server2008下载安装
  11. 本人做了5年Java,直到2018年11月中旬我通过学习拿到年薪80w
  12. matlab j计算丰水期的值,科学计算与MATLAB语言超星2020期末考试查题公众号答案
  13. java读取文件之BufferedReader
  14. Qt2D游戏开发引擎QtGameEngine使用入门5——创建一个敌对的怪物角色并自动攻击
  15. 因数(factor)
  16. 凯撒密码C语言去掉空格字符,凯撒密码C语言实现
  17. 磁盘满了怎么清理之空间占用分析软件SpaceSniffer
  18. R语言实现双变量分析教程
  19. 【车间调度】模拟退火算法求解车间调度(jobshop-3)问题【含Matlab源码 1082期】
  20. IntelliJ IDEA)中弹出“IntelliJ IDEA License Activation”时怎么办

热门文章

  1. Intent的基本使用
  2. 一文读懂 select count(*) 底层原理
  3. Veritas NetBackup8.1.1设置备份
  4. 现代存储架构:磁带存储在数据中心重生
  5. 北邮803考研经验杂谈
  6. deeplink跳转快应用返回出现两次系统添加桌面的弹框
  7. Cousera Recommender System专项课程 Assignment2
  8. java关于对于word或者pdf文件的批量下载实现,其中包括(Java实现创建word文档模板,根据模板导出word文档)
  9. 安全邮箱是什么邮箱?怎么登录163邮箱?
  10. 服装ERP软件首要的好处都有哪些?