Oracle分区知识
查询分区名称、表空间的SQL
USER_SEGMENTS
SELECT SEGMENT_NAME,PARTITION_NAME,TABLESPACE_NAME FROM USER_SEGMENTS;
1、范围分区(range)
范围分区指的是通过某一字段的范围进行分区,比如说以日期范围进行分区为2013、2014、2015年表,或者以id的数字大小进行分区
用法:
--创建一个以id分区的分区表test_calc
Create table test_calc
(
id number(6),
create_time date dafault sysdate
)partition by range(id)(
partition part_1 values less than (0) tablespace space_1,
partition part_2 values less than (maxvalue) tablespace space_2
);
--插入数据
Insert into test_calc(id) values(-1); --插入part_1
Insert into test_calc(id) values(10); --插入part_2 查看整个分区表时还会和查看普通表一样,只不过会查看part_1和part_2两个分区的内容
Select * from test_calc;
单独查看part_1分区
Select * from test_calc partition(part_1); --只有1对应的数据,没有10那一行
2、散列分区(hash)
散列分区指的是通过对某一字段进行散列分布(hash)进行分区,比如对id字段的数字求模,两个分区就是以2为模进行分布
用法:
--创建一个以id分区的分区表test_calc
Create table test_calc
(
id number(6),
create_time date dafault sysdate
)partition by hash(id)(
partition part_1 tablespace space_1 ,
partition part_2 tablespace space_2
);
--另一种形式:自动生成分区部门partition_name的名字
Create table test_calc
(
id number(6),
create_time date dafault sysdate
)partition by hash(id)
partitions 2
store in(space_1,space_2) ; --插入数据
Insert into test_calc(id) values(1);
Insert into test_calc(id) values(2);
Insert into test_calc(id) values(3);
Insert into test_calc(id) values(4);
插入数据之后就会自动调用hash处理方法去处理,最后呈现的结果一定是两个分区各自一半一半 ***散列分区的好处就是每个分区的数据量大致相同***
3、列表分区(list)
如果说分区字段并不是有一定范围或者数值就是某几个特定的值的情况的话,比如id就是1,2,3,4三个值,那么列表分区就是不二的选择
用法:
--创建一个以id分区的分区表test_calc
Create table test_calc
(
id number(6),
create_time date dafault sysdate
)partition by list(id)(
partition part_1 values(1,3) tablespace space_1 ,
partition part_2 values(2,4) tablespace space_2
); --插入数据
Insert into test_calc(id) values(1); --插入part_1
Insert into test_calc(id) values(2); --插入part_2
Insert into test_calc(id) values(3); --插入part_1 Insert into test_calc(id) values(4); --插入part_2
4、组合范围散列分区(range-hash)
先进行范围分区(range)形成几个父分区,再在这几个父分区上进行散列分区(hash)形成几个小的子分区的形式
用法:
--创建一个以id分区的分区表test_calc
Create table test_calc
(
id number(6),
create_time date dafault sysdate
)partition by range(id)
subpartition by hash(id)
(
partition p_1 values less than (0)(
subpartition p_1_1 tablespace space_1,
subpartition p_1_2 tablespace space_2
) ,
partition p_2 values less than (maxvalue)(
subpartition p_2_1 tablespace space_1,
subpartition p_2_2 tablespace space_2
) , );
--相当于分割为两个大的分区,又在两个大的分区上面分别分割了两个小的分区,一共四个分区 分别是:p_1_1、p_1_2、p_2_1、p_2_2
5、组合范围列表分区(range-hash)
先进行范围分区(range)形成几个父分区,再在这几个父分区上进行列表分区(list)形成几个小的子分区的形式
用法:
--创建一个以id分区的分区表test_calc
Create table test_calc
(
id number(6),
create_time date dafault sysdate
)partition by range(id)
subpartition by list(id)
(
partition p_1 values less than (0)(
subpartition p_1_1 values(-1,-2) tablespace space_1,
subpartition p_1_2 values(1,2) tablespace space_2
) ,
partition p_2 values less than (maxvalue)(
subpartition p_2_1 values(-1,-2) tablespace space_1,
subpartition p_2_2 values(1,2) tablespace space_2
) , );
--相当于分割为两个大的分区,又在两个大的分区上面分别分割了两个小的分区,一共四个分区 分别是:p_1_1、p_1_2、p_2_1、p_2_2
Oracle分区知识的更多相关文章
- Oracle体系结构之Oracle分区
目录 Oracle分区 0 一.Oracle分区理论知识 1 二.分区表的实现方式 1 1.范围分区(range partition table) 1 2.列表分区(list partitioning ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- ORACLE 分区
在建设数据仓库过程中,经常会有大量数据,短时间内表中数据量有限,查询性能还可以,但随着时间的延长,表中数据量迅速增加,查询速度就会变慢,性能下降,这时就要考虑对表进行分区. 一.oracle的分区 当 ...
- oracle 分区和分区索引
一.个人理解:建表时一般都会指定在一个表空间上,但是可能随着表空间扩大,查询越来越慢,分区表就是将一个表实际存在不同的表空间,oracle存储分为块,断,表空间.新建一个表,会给表分配指定大小的段,段 ...
- 图说Oracle基础知识(一)
本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...
- Oracle连接知识
Oracle基本连接知识 登录sys用户或 sysdba用户权限的账号 Sqlplus 建用户 Create user test identified by 12345678 ...
- Oracle 基础知识入门
前记: 近来项目用到Oracle数据库,大学学了点,后面基本忘记得差不多了,虽然基本语法跟sql 差不多,但是oracle知识是非常多的. 这里简单说点基础知识,希望后面补上更多的关于ORacle知识 ...
- 01 Oracle分区索引
Oracle分区索引 索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局 ...
- Oracle常用知识小总结
永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! Oracle常用知识小总结 1. 创建自增主键 对于习惯了SQL SERVER的图形化界面操作的SQLer,很长一段时间不用oracle ...
随机推荐
- 截取字符串一之slice
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- sqoop安装与使用
sqoop简介 sqoop名字是怎么来的?Sqoop: SQL-to-Hadoop 连接传统数据库和hadoop的桥梁,把关系型数据库的数据导入到hadoop系统(如HDFS,HBASE和hive中) ...
- C#操作XML存取创建XML
using System.Xml; #region 生成XML文档 /// <summary> /// /// </summary> /// <param name=& ...
- 有关android源码编译的几个问题
项目用到编译环境,与源码有些差异不能照搬,关键是连源码都没编译过,下面基本上是行网上照的各种自学成才的分享,病急乱投医了,都记在下面作为参照吧. 1.验证是否编译正确,在终端执行 emulator & ...
- Java 中的resultset详解
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据 ...
- sql查询当天数据
向数据库中添加日期 MS SQL SERVER: NSERT into student(studentid,time1)values('15',getdate()); MY SQLinsert int ...
- 关于多线程中GCD的使用
GCD 分为异步和同步 异步: ```objc dispatch_async ( 参数1 , { } 同步: dispatch_sync( 参数1 , { } ``` ###参 ...
- lab4 Cache Geometries 深入理解计算机系统——高速缓存
这个实验主要是将高速缓存命中的一点东西,意在告诉我们平常多注意这方面的东西. 不懂java的,所以只管C的部分. You will do this several times, making smal ...
- SGU题目总结
SGU还是个不错的题库...但是貌似水题也挺多的..有些题想出解法但是不想写代码, 就写在这里吧...不排除是我想简单想错了, 假如哪位神犇哪天发现请告诉我.. 101.Domino(2015.12. ...
- PhpStorm 10.0 激活方式
随着 JetBrains 新版本的发布,注册机已然不行了.然而,道高一尺,魔高一丈.IntelliJ IDEA开源社区 提供了如下通用激活方法:注册时选择License server填写http:// ...