上一节学习了分区表,接着学习分区索引。

(一)什么时候对索引进行分区

· 为了避免移动数据时重建整个索引,可对索引分区,在重建索引时,只需重建与数据分区相关的索引;

· 在对分区表进行维护时,为了避免整个表的索引处于不可用状态,可将索引进行分区。当对分区表进行维护时,只需将该分区表的索引置为不可用状态,并不会影响到其它分区索引的使用;

· 索引表的急剧增长导致索引条目的剧增,使得整个索引表非常大,影响索引速度,需要对索引分区;

(二)本地分区索引

(1)本地分区索引是为分区表中的各个分区创建单独的索引分区,各个索引分区之间是相互独立的,索引的分区与表的分区是一一对应的,一个分区表有几个分区,就有几个本地分区索引。当对本地分区表进行分区的添加、删除、合并等操作时,系统会自动对分区索引进行维护,创建本地分区索引需要使用LOCAL关键字。

图.分区表与本地分区索引一一对应

(2)本地分区索引的优点:

l 如果需要对一个表分区进行维护,则受影响的只是与之关联的索引;

l 重建某个索引分区,其它分区不会受到影响;

l 本地分区索引支持单一分区数据的装入和卸出;

l 本地分区索引采用与分区表相同的分区方法,有利于生成高效的查询计划;

l 本地分区索引简化了表空间的不完全恢复,在恢复分区/子分区的时候同时恢复对应的分区索引。

(3)为分区表创建本地分区索引

CREATE INDEX index_name ON partition_table_name(column) LOCAL;

例子1.为sales_by_list创建分区索引sales_by_index

CREATE INDEX sales_by_index ON sales_by_list(province)

结果如下:

(三)全局分区索引

(1)全局分区索引是对整个表建立索引,然后再对索引进行分区。索引的分区之间不是相互独立的,索引分区与表分区也不是一一对应的关系。Oracle全局分区索引分区方法包括范围分区(Range)和散列分区(Hash),全局分区需要使用GLOBAL关键字。

图.全局索引的4种情况

(2)为分区表创建全局分区索引,主要有2步:创建全局索引和对全局索引进行分区,语法为:

CREATE INDEX index_name ON [partition]_table_name(column)            --创建全局索引
GLOBAL PARTITION BY Range(column) --以Range方式为例,对索引表进行分区
(
PARTITION partition VALUES LESS THAN() TABLESPACE tablespace,

);

例子2.为sale_by_range创建全局分区索引

/*为sales_by_range表创建全局分区索引*/

create index sale_by_range_index on sale_by_range(time_id)
global partition by range(time_id)
(
partition sales_by_range_index_1 values less than(to_date('2012-1-1','yyyy-mm-dd')),
partition sales_by_range_index_2 values less than(to_date('2012-4-5','yyyy-mm-dd')),
partition sales_by_range_index_3 values less than(maxvalue)
);

结果如下:

(4)维护分区索引

使用ALTER INDEX语句来维护索引分区

(四)查看分区索引的信息

Oracle提供了数据字典来查看分区索引的信息

[Oracle]分区索引的更多相关文章

  1. 01 Oracle分区索引

    Oracle分区索引   索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局 ...

  2. Oracle分区索引

    索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局分区索引) 下面就来详细解 ...

  3. oracle 分区和分区索引

    一.个人理解:建表时一般都会指定在一个表空间上,但是可能随着表空间扩大,查询越来越慢,分区表就是将一个表实际存在不同的表空间,oracle存储分为块,断,表空间.新建一个表,会给表分配指定大小的段,段 ...

  4. 深入学习Oracle分区表及分区索引

    关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: •       Range(范围)分区 •       Has ...

  5. 转:深入学习Oracle分区表及分区索引

    转自:http://database.ctocio.com.cn/tips/286/8104286.shtml 关于分区表和分区索引(About Partitioned Tables and Inde ...

  6. oracle 分区表和分区索引

    很复杂的样子,自己都没有看完,以备后用 http://hi.baidu.com/jsshm/item/cbfed8491d3863ee1e19bc3e ORACLE分区表.分区索引ORACLE对于分区 ...

  7. ORACLE分区表、分区索引详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt160 ORACLE分区表.分区索引ORACLE对于分区表方式其实就是将表分段 ...

  8. 【三思笔记】 全面学习Oracle分区表及分区索引

    [三思笔记]全面学习Oracle分区表及分区索引 2008-04-15 关于分区表和分区索引(About PartitionedTables and Indexes) 对于 10gR2 而言,基本上可 ...

  9. 简单ORACLE分区表、分区索引

    前一段听说CSDN.COM里面很多好东西,同事建议看看合适自己也可以写一写,呵呵,今天第一次开通博客,随便写点东西,就以第一印象分区表简单写第一个吧. ORACLE对于分区表方式其实就是将表分段存储, ...

随机推荐

  1. [转] EF cannot be tracked because another instance of this type with the same key is already being tracked

    本文转自:http://stackoverflow.com/questions/6033638/an-object-with-the-same-key-already-exists-in-the-ob ...

  2. [转]使用 Razor 进行递归操作

    本文转自:http://www.cnblogs.com/zbw911/archive/2013/01/10/2855025.html 做一个菜单,多级的会遇到递归的问题,打算在code中做一个递归方法 ...

  3. [转]ASP.NET Core基本原理(11)-管理应用程序状态

    本文转自:http://zhuchenglin.me/fundamentals-11-app-state?utm_source=tuicool&utm_medium=referral ASP. ...

  4. linux服务器时间自动同步

    最常用的是 rdate 服务 安装(centOs为例): yum install -y rdate 用法: rdate -s time-b.nist.gov 执行完以上方法时间就同步了.有的服务器隔一 ...

  5. Redis简介及持久化

    Redis是一个key-value数据库,他不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型.可用于缓存.消息队列.发布.订阅消息.商品列表和评论列表等场景.Redis提供了5种 ...

  6. css display:table圣杯布局

    圣杯布局指的是一个网页由页眉,3等高列(2个固定侧栏和中心内容主体)和贴在页面底部的页脚组成. 主要思路是对整个容器使用地上diaplay:table 的css规则,然后分别对页眉页脚使用displa ...

  7. JavaScript数组求和

    <script> function demo(){ var d=document.getElementsByTagName("input")[0].value.spli ...

  8. SQL Server日期格式化

    0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)       1   101   美国   mm/dd/yyyy       ...

  9. 菜鸟学习Spring——SpringIoC容器基于三种配置的对比

    一.概述 对于实现Bean信息定义的目标,它提供了基于XML.基于注解及基于java类这三种选项.下面总结一下三种配置方式的差异. 二.Bean不同配置方式比较. 三.Bean不同配置方式的适用场合. ...

  10. 内存分配malloc函数注意事项。

    malloc的全称是memory allocation,中文叫动态内存分配,用于向系统申请分配指定字节的内存空间 原型:extern void *malloc(unsigned int num_byt ...