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 ...
随机推荐
- 海边直播目标2017全国初中数学竞赛班课堂测试题解答-The Final
1. 设函数 $f(x) = 2^x(ax^2 + bx + c)$ 满足等式 $f(x+1) - f(x) = 2^x\cdot x^2$, 求 $f(1)$. 解答: 由 $f(x) = 2^x( ...
- Solution: Win 10 和 Ubuntu 16.04 LTS双系统, Win 10 不能从grub启动
今年2月份在一台装了Windows的机器上装了Unbuntu 14.04 LTS (双系统, dual-boot, 现已升级到 16.04 LTS). 然而开机时要从grub启动 Windows (选 ...
- Jquery 随便写些知识点
针对jQuery随便写些觉得还挺实用的一些东西,也没系统的去理一番,只是想到哪写到哪,写的不完全也请多见谅. jQuery和其他javascript库产生$符号冲突了?$符号想必用jQuery的人都不 ...
- PCA 主成分分析(Principal components analysis )
问题 1. 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余. 2. 拿到一个数学系的本科生期末考试成绩单,里面有三列, ...
- java中"与"和"或"
在java中"与"和"或"都具有短路功能. 关于"或"运算如 if(mc == null || mc.getReceive()==0){ / ...
- css重点章节复习—布局-边框-边距-浮动 (部分)
css重点章节复习—布局-边框-边距-浮动 在第二个任务中,这一块的后面那条线真的弄了很久.起初也是在html里面写的代码.之后觉得这样不好,想到第一个页面中用到的border-bottom和bord ...
- swfUpload 上传图片
前端: <script src="~/Scripts/swfupload/swfupload.js"></script> <script src=&q ...
- 添加IP安全策略 远离系统Ping漏洞的威胁
懂得网络的人对于Ping这个最基本的网络命令一定很熟悉,它是一个非常好用的TCP/IP工具.它可以向你提供的地址发送一个小的数据包,然后侦听这台机器是否有“回答”.你可以使用机器的 Internet ...
- openstack虚拟机启动过程
核心项目3个 1.控制台 服务名:Dashboard 项目名:Horizon 功能:web方式管理云平台,建云主机,分配网络,配安全组,加云盘 2.计算 服务名:计算 项目名:Nova 功能:负责响应 ...
- SSAO相关资料
http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/a-simple-and-pract ...