三、删除分区

You can drop partitions from range, list, or composite range-list partitioned tables.

ALTER TABLE ... DROP PARTITION part_name;

For hash-partitioned tables, or hash subpartitions of range-hash partitioned tables, you must perform. a coalesce operation instead.

-- 减少hash 分区的个数,一次减少一个。不能指定减少partition的名称。

ALTER TABLE hash_example COALESCE PARTITION ;

--subpartition 的语法对于如下

ALTER TABLE diving MODIFY PARTITION us_locations COALESCE SUBPARTITION;

四、 分区合并

1. 合并父分区

ALTER TABLE range_example

MERGE PARTITIONS part01_1,part01_2 INTO PARTITION part01

UPDATE INDEXES;

如果省略update indexes子句的话,必须重建受影响的分区的index 。

ALTER TABLE range_example MODIFY PARTITION part02 REBUILD UNUSABLE LOCAL INDEXES;

2. 合并子分区

ALTER TABLE composite_example

MERGE SUBPARTITIONS part_1_sub_2,part_1_sub_3 INTO SUBPARTITION part_1_sub_2

UPDATE INDEXES;

五、分割分区

hash partitions or subpartitions不能分割。如果指定的分割分区包含任何的数据时,对应的indexes可以被标识为UNUSABLE 。如果是一般的Heap Table,新的分区indexes为UNUSABLE ,所有gloabl indexes被标识为UNUSABLE 。如果是Index-organized table 新分区的indexes 为UNUSABLE,global indexes 仍然为USABLE。

1、range类型分区的分割

ALTER  TABLE range_example

SPLIT PARTITION part01

AT (TO_DATE('2008-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))

INTO ( PARTITION part01_1,PARTITION part01_2

);

一个分区一次性只能分割成两个分区,at关键字后面指定的值为第一个分区的range范围,默认为less than 。

2、list类型分区的分割

ALTER  TABLE list_example

SPLIT PARTITION part01 VALUES('ME','PE')

INTO ( PARTITION part01_1, PARTITION part01_2

);

3、Range_Hash类型分区的分割 新分区会对原有分区的subpartition做rehash的动作。如果在分割是指定subpartition的个数,则按新规则rehash subpartition,如果没有指定则保留原有subpartition的个数不变。

ALTER  TABLE range_hash_example SPLIT PARTITION part_1

AT (TO_DATE('2008-07-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) INTO (

PARTITION part_1_1 SUBPARTITIONS 2 STORE IN (tbs01,tbs02),

PARTITION part_1_2

);

subpartitions 2 -- 指定新分区的subpartition的个数,store in 子句指定subpartition存储的tablespace 。

六、Exchanging Partitions

可以将分区表转换成非分区表,或者几种不同分区表之间的转换。

如下:

CREATE TABLE hash_part02 AS SELECT * FROM hash_example WHERE 1=2;

ALTER TABLE hash_example EXCHANGE PARTITION part02 WITH TABLE hash_part02;

这时,分区表hash_example中的part02分区的资料将被转移到hash_part02这个非分区表中。

七、索引

在分区表上可以建立三种类型的索引:1、和普通表一样的全局索引。2、全局分区索引。3、本地分区索引。

它们之间的区别如下图示。

以表range_example为例。

1.建立普通的索引

create index com_index_range_example_id on range_example(id);

2.建立本地分区索引

create index  local_index_range_example_id on range_example(id) local;

3.建立全局分区索引

create index gidx_range_exampel_id on range_example(id)

GLOBAL  partition by  range(id)

(

part_01 values less than(1000),

part_02 values less than(MAXVALUE)

);

对于分区索引的删除,local index 不能指定分区名称,单独的删除分区索引。local index 对应的分区会伴随着data分区的删除而一起被删除。

global partition index 可以指定分区名称,删除某一分区。但是有一点要注意,如果该分区不为空,则会导致更高一级的索引分区被置为UNUSABLE 。

ALTER INDEX  gidx_range_exampel_id drop partition part_01  ; 此句将导致part_02 状态为UNUSABLE 。

转 :Oracle分区表 (Partition Table) 的创建及管理的更多相关文章

  1. (转)Oracle分区表和索引的创建与管理

    今天用到了Oracle表的分区,就顺便写几个例子把这个表的分区说一说: 一.创建分区表 1.范围分区 根据数据表字段值的范围进行分区 举个例子,根据学生的不同分数对分数表进行分区,创建一个分区表如下: ...

  2. oracle分区表按时间自动创建

    表分区是一种思想,分区表示一种技术实现.当表的大小过G的时候可以考虑进行表分区,提高查询效率,均衡IO.oracle分区表是oracle数据库提供的一种表分区的实现形式.表进行分区后,逻辑上仍然是一张 ...

  3. 【Oracle 】tablespace 表空间创建和管理

    1.表空间的概述 1. 表空间是数据库的逻辑组成部分. 2. 从物理上讲,数据库数据存放在数据文件中: 3. 从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成. 2.oracle的 ...

  4. hive中简单介绍分区表(partition table)——动态分区(dynamic partition)、静态分区(static partition)

    一.基本概念 hive中分区表分为:范围分区.列表分区.hash分区.混合分区等. 分区列:分区列不是表中的一个实际的字段,而是一个或者多个伪列.翻译一下是:“在表的数据文件中实际上并不保存分区列的信 ...

  5. 性能-发挥ORACLE分区表

    ORACLE分区表发挥性能 http://www.cnblogs.com/zwl715/p/3962837.html 1.1 分区表PARTITION table 在ORACLE里如果遇到特别大的表, ...

  6. ORACLE分区表发挥性能

    1.1 分区表PARTITION table 在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能. 1.1.1 分区表的建立: 某公司的每年产生巨大的销售记录,DBA向公司建议 ...

  7. oracle partition table 分区表详解

    Oracle partition table 分区表详解 分区表就是通过使用分区技术,将一张大表,拆分成多个表分区(独立的segment),从而提升数据访问的性能,以及日常的可维护性.分区表中,每个分 ...

  8. PLSQL_性能优化系列09_Oracle Partition Table数据分区表

    2014-08-22 Created By BaoXinjian

  9. SQL Server 查看分区表(partition table)的分区范围(partition range)

    https://www.cnblogs.com/chuncn/archive/2009/02/20/1395165.html SQL Server 2005 的分区表(partition table) ...

随机推荐

  1. sql 判断表是否存在,判断列是否存在

    判断表是否存在: 语法: SELECT * FROM dbo.SysObjects where id = object_id(N'表名') 例子: SELECT * FROM dbo.SysObjec ...

  2. 浅谈h5移动端页面的适配问题

    一.前言 昨天唠叨了哈没用的,今天说点有用的把.先说一下响应式布局吧,我一直认为响应式布局的分项目,一下布局简单得项目做响应式还是可以可以得.例如博客.后台管理系统等.但是有些会认为响应式很牛逼,尤其 ...

  3. YII2 小部件(widgets)

    小部件基本上在views中使用,在视图中可调用 yii\base\Widget::widget() 方法使用小部件. 该方法使用 配置 数组初始化小部件并返回小部件渲染后的结果. 例如如下代码插入一个 ...

  4. Entity Framework技巧系列之六 - Tip 20 – 25

    提示20. 怎样处理固定长度的主键 这是正在进行中的Entity Framework提示系列的第20篇. 固定长度字段填充: 如果你的数据库中有一个固定长度的列,例如像NCHAR(10)类型的列,当你 ...

  5. LeetCode OJ 292.Nim Gam148. Sort List

    Sort a linked list in O(n log n) time using constant space complexity. 排序问题是我们遇到的一个老问题,从大一开始我们就学习了各种 ...

  6. Underscore.js 的模板功能介绍与应用

    Underscore是一个非常实用的JavaScript库,提供许多编程时需要的功能的支持,他在不扩展任何JavaScript的原生对象的情况下提供很多实用的功能,需要了解的朋友可以详细参考下   U ...

  7. 中国内地、台湾、香港、澳门和国外DNS服务器地址列表

    中国内地.台湾.香港.澳门和国外DNS服务器地址列表 详细内容 作者:网路岗 来源:局域网监控软件 DNS(Domain Name System)是域名解析服务器的意思,它在互联网的作用是把域名转换成 ...

  8. bower 教程

    1.运行 - cmd 2.npm install -g  bower 3.文件夹右击git bash here

  9. MVC4相关Razor语法以及Form表单(转载)

    Razor的布局(Layout) 默认建的工程都自带的了一个_ViewStart.cshtml文件,文件里面的代码如下: @{ Layout = "~/Views/Shared/_Layou ...

  10. IE11中的F12无效的问题

    最近做的一个项目中,h5中的video标签IE11在有的机器上兼容,有的机器上不兼容,很是让人头疼.将IE卸载后重装又发现最新的IE11中F12开发者工具失效.面对F12失效的问题,具体解决办法如下: ...