Oracle基础—表分区
一:表分区的应用场景
用于管理包含大量数据的表。
二:表分区的优点
1.提高数据的可以性
2.减少管理负担
3.改善语句的性能
三:分区的方式:(区间分区、散列分区、列表分区、组合分区)
1.区间分区(范围分区 range)
创建区间分区的语法:
PARTITION BY RANGE (列名) --range表示分区的方式
(
partition 分区表名 values less than (值)
[ tablespace 表空间]
)
例:按照时间创建表分区。
![]() --创建表时建立分区表 ![]() |
2.散列分区(hash):对于那些无法有效的划分范围的表,可以使用hash分区
散列分区语法:
partition by hash()
(
partition 分区表名 tablespace 表空间名
)
例:
![]() --创建表 ![]() |
3.列表分区(list):可以将数据按照列的值分类
列表分区语法:
partition by list()
(
partition 分区表名 values(指定值1,指定值2……)
)
[tablespace 表空间名]
例:

CREATE TABLE area
(
CODE NUMBER,
NAME VARCHAR2(20)
)
--创建列表分区
PARTITION BY LIST(CODE)
(
PARTITION p1 VALUES(10,20,30), --指定当code值为10,20,30为第一分区
PARTITION p2 VALUES(40,50,60), --指定当code值为40,50,60为第二分区
PARTITION p_other VALUES(DEFAULT) --其他值为第三分区
) select * from area PARTITION (p1);
select * from area PARTITION (p2);
select * from area PARTITION (p_other);

4.组合分区:就是前三个分区的组合
优势:使分区表更加灵活
(1).区间-散列组合分区语法:
partition by range(列1) subpartition by hash(列2)
(
partition 分区表名 values less than(值)
tablespace 表空间名;
)
(2).区间-列表组合分区语法:
partition by range(列1) subpartition by list(列2)
(
partition 分区表名 values less than(值)
tablespace 表空间名(
subpartition 自分区名 values(列表指定值1……)
tablespace 表空间
)
)
四:分区的维护:(增加分区、删除分区、截断分区、合并分区)
1.增加分区
语法:
ALTER TBALE 表名 ADD PARTITION 分区表名 VALUES LESS THAN(值)
--增加区间分区
ALTER TABLE drawlist ADD PARTITION p3 VALUES LESS THEN to_date('2013-1-1','yyyy-mm-dd') TABLESPACE USERS;
--注意:插入的区间数据值不能小于原有的分区表的值。如果包含了maxvalues,必须删除原有分区表
2.删除分区
语法:
ALTER TABLE 表名 DROP PARTITION 分区表名
--删除区间分区
ALTER TABLE drawlist DROP PARTITION p3
--删除分区表后,分区表中的数据也会一同删除
3.截断分区:删除当前分区中的数据,但是它并不会影响其他分区。
语法:
ALTER TABLE 表名 TRUNCATE PARTITION 已经存在的分区表名
--截断分区表P3,清除分区表中的数据
ALTER TABLE drawlist TRUNCATE PARTITION p3
4.合并分区: --高界限的分区不能合并到低界限的分区中
语法:
ALTER TABLE 表名 MERGE PARTITIONS 分区表1,分区表2 INTO PARTITION 分区表2
--将分区表p1合并到分区表p2
ALTER TABLE drawlist MERGE PARTITIONS p1,p2 INTO PARTITION p2
Oracle基础—表分区的更多相关文章
- Oracle基础 表分区
Oracle基础 表分区 一.表分区 (一)表分区的分类 1.范围分区(range) 2.散列分区(hash) 3.列表分区(list) 4.复合分区:范围-哈希(range-hash).范围-列表( ...
- Oracle数据库表分区
一.Oracle数据库表分区概念和理解 1.1.已经存在的表没有方法可以直接转化为分区表. 1.2.不在分区字段上建立分区索引,在别的字段上建立索引相当于全局索引.效率 ...
- oracle的表分区
(1.) 表空间及分区表的概念 表空间: 是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间. 分区表: 当表中的数据量不断增大,查询数据的速度就 ...
- Oracle基础表空间建立,以及练习
Oracle的表空间创建,可以采用网页的https://127.0.0.1:1158/em来进入oracle的页面进行创建表空间. 利用plsqldev.exe程序在表空间里添加数据: 首先要在use ...
- Oracle 删除表分区
删除表分区(drop partition) 删除表分区包含两种操作,分别是: Ø 删除分区:alter table [tbname] drop partition [ptname] UPDA ...
- oracle 基础表的选择
基础表(Driving Table)是指被最先访问的表(通常以全表扫描的方式被访问). 根据优化器的不同, SQL语句中基础表的选择是不一样的. 如果你使用的是CBO (COST BASED OPTI ...
- oracle 添加表分区
alter table DF_WRITE_FILES_H add partition DF_WRITE_FILES_H96 values less than (201512) tablespace T ...
- (3)Oracle基础--表
· 认识表 Oracle中的表都是存储在表空间中,具有以下特点: <1> 数据的基本存储单元 <2> 二维结构 行:又称为‘记录’ 列:又称为‘字段或域’ <3&g ...
- (2)Oracle基础--表空间
· 表空间概述 <1> 理解表空间 ① 表空间与数据库的关系: 表空间是数据库的逻辑存储空间,可以理解为在数据库中开辟的一块空间,用于存放数据库的对象. 一个数据库可以由多个表空间构成.O ...
随机推荐
- eclipse查看 rt.jar 源码
源码位置: %JAVA_HOME%/src.zip step1: step2: step3:
- iOS单例 宏定义
#define singleton_interface(className) \ + (className *)shared##className; // @implementation #defin ...
- CSS实现未知高度图文混合垂直居中
(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-06-26) CSS实现未知高度图文混合垂直居中,阅读CSS实现未知高度图文混合垂直居中. IE6,IE7,FF3测试通过 ...
- 组合View Controller时遇到的一点问题
View Controller的组合应用其实很常见了,比如说Tab bar controller和Navigation view controller的组合使用,像这种一般都是Navigation v ...
- 【转】android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。 注
使用Android studio打包应用程序出现如下错误: 注: 某些输入文件使用或覆盖了已过时的 API. 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译. 注: 某些 ...
- Thread message loop for a thread with a hidden window? Make AllocateHwnd safe
Thread message loop for a thread with a hidden window? I have a Delphi 6 application that has a thre ...
- 【原创】AltiumDesigner 6 的自定义菜单
AltiumDesigner 6 的自定义菜单,数据保存在DXP.RCS文件中通过测试,添加一个自定义菜单名为HHH,然后用Editplus在C:\Users\pcittsy\AppData\Roam ...
- 【原创】PostSharp入门笔记
最近写了一个抓取软件,用户反映软件偶尔会抛异常: 由于当时写代码时没有注意异常处理,大部分方法都没有写try…catch…finally的语句,所以很难找出异常是出在哪个地方,难道要为所有方法加上tr ...
- Android简单封装类似JQuery异步请求
在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...
- 【JavaScript】重温Javascript继承机制
上段时间,团队内部有过好几次给力的分享,这里对西风师傅分享的继承机制稍作整理一下,适当加了些口语化的描述,留作备案. 一.讲个故事吧 澄清在先,Java和Javascript是雷锋和雷峰塔的关系.Ja ...