oracle数据表创建分区与查询
场景: 遇到1亿数据量的数据需要根据用户名做些数据统计分析,想直接做些聚合计算基本没可能,于是打算先根据日期按照年月创建分区,然后对各个分区分别进行统计,最后汇总结果。
有两种方法,分别是手工设置分区和自动设置分区,自动设置分区在oracle11g版本才新增的功能。
方法一:自动设置分区的表创建方式如下:
- create table TEST_RANGE
- (
- data_dt NVARCHAR2(10),
- deviceid NVARCHAR2(100),
- useraccount NVARCHAR2(200),
- macadd NVARCHAR2(200),
- platform NVARCHAR2(20),
- clientver NVARCHAR2(20),
- ip NVARCHAR2(30),
- channel NVARCHAR2(20),
- color NUMBER(15),
- lastlogin DATE,
- logintimes NUMBER(20),
- batch_id NUMBER(38)
- )
- partition by range (lastlogin)
- interval(numtoyminterval(1,'MONTH'))
- (
- PARTITION P1 VALUES LESS THAN (TO_DATE('2016-07-01','YYYY-MM-DD'))
- )
方法二: 手工创建分区记录
操作方式,新建分区表,然后用ETL工具抽取源并写入新表。
- create table TEMP_TEST
- (
- log_id NUMBER(20),
- user_id NUMBER(20),
- user_name NVARCHAR2(200),
- money NUMBER(30,8),
- history_total NUMBER(30,8),
- order_id NVARCHAR2(100),
- money_type_id NUMBER(20),
- reason_id NUMBER(20),
- operation_user_name NVARCHAR2(200),
- operation_user_ip NVARCHAR2(100),
- remark NVARCHAR2(200),
- osn NVARCHAR2(100),
- isn NVARCHAR2(100),
- return_sn NVARCHAR2(100),
- repeate_flag NUMBER(3),
- create_date DATE,
- modify_date DATE,
- status NUMBER(20),
- batch_id NUMBER(38)
- ) nologging
- partition by range (create_date)
- (
- partition create_date1500 values less than (TO_DATE('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1501 values less than (TO_DATE('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1502 values less than (TO_DATE('2015-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1503 values less than (TO_DATE('2015-04-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1504 values less than (TO_DATE('2015-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1505 values less than (TO_DATE('2015-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1506 values less than (TO_DATE('2015-07-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1507 values less than (TO_DATE('2015-08-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1508 values less than (TO_DATE('2015-09-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1509 values less than (TO_DATE('2015-10-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1510 values less than (TO_DATE('2015-11-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1511 values less than (TO_DATE('2015-12-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1512 values less than (TO_DATE('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1601 values less than (TO_DATE('2016-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1602 values less than (TO_DATE('2016-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1603 values less than (TO_DATE('2016-04-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1604 values less than (TO_DATE('2016-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1605 values less than (TO_DATE('2016-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1606 values less than (TO_DATE('2016-07-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1607 values less than (TO_DATE('2016-08-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1608 values less than (TO_DATE('2016-09-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1609 values less than (TO_DATE('2016-10-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1610 values less than (TO_DATE('2016-11-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1611 values less than (TO_DATE('2016-12-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS,
- partition create_date1612 values less than (TO_DATE('2017-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace DW_STG_TBS
- )
2. 表分区的查询
注意要查询的表的名字要大写
- SELECT table_name,partition_name FROM user_tab_partitions
- WHERE table_name=upper('temp_test');
oracle数据表创建分区与查询的更多相关文章
- MySQL数据表range分区例子
某些行业数据量的增长速度极快,随着数据库中数据量的急速膨胀,数据库的插入和查询效率越来越低.此时,除了程序代码和查询语句外,还得在数据库的结构上做点更改:在一个主读辅写的数据库中,当数据表数据超过10 ...
- Oracle的表创建和事务管理
Oracle的表创建和事务管理 - CURD,根据查询结果创建新表 - 事务管理 - 什么是事务 ,为什么要用事务 - SQL99事务隔离级别 - Oracle事务隔离级别 - 事务回滚 - 隐式回滚 ...
- C# - VS2019 通过DataGridView实现对Oracle数据表的增删改查
前言 通过VS2019建立WinFrm应用程序,搭建桌面程序后,通过封装数据库操作OracleHelper类和业务逻辑操作OracleSQL类,进而通过DataGridView实现对Oracle数据表 ...
- Oracle数据表转换为Shapefile(二)
在上一篇博文<Oracle数据表转换为Shapefile(一)>中详细描述了一种基于Oracle数据表生产Shapefile的技术方法,本文同样以详细图解的方式描述一种更便捷的方法来完成同 ...
- Oracle数据表转换为Shapefile(一)
严格来说,文章标题中的“转换”并不完全合适.本文的主要内容是基于Oracle数据表的数据来生产出Shapefile文件.进行该工作的一个前提条件是:Oracle数据表中包含坐标数值字段,一般来说就是x ...
- MySQL 数据表创建及管理
use stuinfo; -- 指定当前数据库 CREATE table if not exists student1( -- 创建数据表student1 sNo ) not NULL, sName ...
- 定时导出Oracle数据表到文本文件的方法
该实例实现了通过windows定时任务来实现了将数据库中指定数据表数据导出为txt文本格式.其思路是通过可执行的bat文件去调用导出数据脚本,然后再在windows定时任务中调用该bat文件来实现.该 ...
- Oracle 复制表创建的sql语句
http://cache.baiducontent.com/c?m=9d78d513d99e01fc09b3c3690d67c0161343f0652ba1d4020ed08449e3732b4250 ...
- mysql数据库表分区详解(数量过大的数据库表通过分区提高查询速度)
这篇文章主要介绍了MySQL的表分区,例如什么是表分区.为什么要对表进行分区.表分区的4种类型详解等,需要的朋友可以参考下 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysq ...
随机推荐
- jQuery—DOM操作
摘抄自<锋利的jQuery> 一.查找节点 1.查找元素节点 var li_txt = $li.text(); 2.查找属性节点 var p_txt = $para.attr(" ...
- 关于The serializable class XXX does not declare a static final serialVersionUID field of type long的警告
编写实体类并且继承序列化接口时候,实体类会有警告,要生成一个静态的serialVersionUID. 上网搜了一下资料,现通俗解释一下: 点击前2个选项,会生成: private static fin ...
- 八数码问题(紫薯P199)
#include <algorithm> #include <cstdio> #include <cstring> #include <iostream> ...
- mongo&node
///// node install $ sudo apt-get install python-software-properties $ curl -sL https://deb.nodesou ...
- RBAC权限设计实例
http://blog.csdn.net/painsonline/article/details/7183629 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为 ...
- BZOJ4004: [JLOI2015]装备购买
总之就是线性基那一套贪心理论直接做就好了. 然而加强数据后很卡精度的样子. 于是重点在于这个特技:在整数模意义下搞. #include<cstdio> #include<algori ...
- 什么是FOUC?如何避免FOUC?
因为在看一些面试题,所以接触到了这个词 FOUC 什么叫做 FOUC 浏览器样式闪烁 如果使用import方法对css进行导入,会导致某些页面在Windows 下的Internet Explorer出 ...
- spring-boot-cli
- 【浅谈html5 响应式布局之自动适应屏幕宽度】
允许网页宽度自动调整 “自适应网页设计”到底是怎么做到的?其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name=”viewport” content=”w ...
- phpspidercookie
<?php /** * Created by PhpStorm. * User: brady * Date: 2016/12/9 * Time: 17:32 */ ini_set("m ...