[Oracle]分区索引
上一节学习了分区表,接着学习分区索引。
(一)什么时候对索引进行分区
· 为了避免移动数据时重建整个索引,可对索引分区,在重建索引时,只需重建与数据分区相关的索引;
· 在对分区表进行维护时,为了避免整个表的索引处于不可用状态,可将索引进行分区。当对分区表进行维护时,只需将该分区表的索引置为不可用状态,并不会影响到其它分区索引的使用;
· 索引表的急剧增长导致索引条目的剧增,使得整个索引表非常大,影响索引速度,需要对索引分区;
(二)本地分区索引
(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]分区索引的更多相关文章
- 01 Oracle分区索引
Oracle分区索引 索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局 ...
- Oracle分区索引
索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局分区索引) 下面就来详细解 ...
- oracle 分区和分区索引
一.个人理解:建表时一般都会指定在一个表空间上,但是可能随着表空间扩大,查询越来越慢,分区表就是将一个表实际存在不同的表空间,oracle存储分为块,断,表空间.新建一个表,会给表分配指定大小的段,段 ...
- 深入学习Oracle分区表及分区索引
关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: • Range(范围)分区 • Has ...
- 转:深入学习Oracle分区表及分区索引
转自:http://database.ctocio.com.cn/tips/286/8104286.shtml 关于分区表和分区索引(About Partitioned Tables and Inde ...
- oracle 分区表和分区索引
很复杂的样子,自己都没有看完,以备后用 http://hi.baidu.com/jsshm/item/cbfed8491d3863ee1e19bc3e ORACLE分区表.分区索引ORACLE对于分区 ...
- ORACLE分区表、分区索引详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt160 ORACLE分区表.分区索引ORACLE对于分区表方式其实就是将表分段 ...
- 【三思笔记】 全面学习Oracle分区表及分区索引
[三思笔记]全面学习Oracle分区表及分区索引 2008-04-15 关于分区表和分区索引(About PartitionedTables and Indexes) 对于 10gR2 而言,基本上可 ...
- 简单ORACLE分区表、分区索引
前一段听说CSDN.COM里面很多好东西,同事建议看看合适自己也可以写一写,呵呵,今天第一次开通博客,随便写点东西,就以第一印象分区表简单写第一个吧. ORACLE对于分区表方式其实就是将表分段存储, ...
随机推荐
- 修改K3数据是简介方法
如 及时库存里有个别产品库存没有库位 是*号的 这个时候 我们创建一个其他出库单,把这个没有库位的产品输入进去,库位随便写个 如002 保存,审核不了的 会提示负库存 去后台找到此单据号 修改 ...
- python学习(五)--打印错误信息
from urllib import request #打印错误信息 except Exceptionlist = [ "http://www.baidu11.com/", &qu ...
- Please, configure Web Facet first!idea报这错的解决办法!!
Please, configure Web Facet first!idea报这错的解决办法!! 今天在idea导入用eclipse的项目,然后运行项目的时候报这个错, 看下图 网上找了好多都没解决, ...
- 从psd文件到html
纲要 计划布局,划分整体结构 内容区域,从整体到局部,局部中的通用部分,根据上下文应用样式 公共头部(public-header).尾部(public-footer) 公共容器(public-cont ...
- git取消本地commit
如果不小心commit了一个不需要commit的文件,可以对其进行撤销. 先使用git log 查看 commit日志 commit 422bc088a7d6c5429f1d0760d008d86c5 ...
- String字符串操作
char chars[] ={'a','b','c'}; String s = new String(chars); int len = s.length();//字符串长度 System.out.p ...
- JSP初学者5
JSP中include指令和include动作的区别 include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中, JSP引擎在判断JSP页面未被修改,否则 ...
- 【CSAPP-南大视频】Week1-计算机系统概述
本笔记基于中国大学Mooc <计算机系统基础(一):程序的表示.转换与链接>课程,由 南京大学袁春风教授授课. 教材<深入理解计算机系统> 课程总目标:理解计算机是如何生成和运 ...
- linux c开发: 在程序退出时进行处理
有时候,希望程序退出时能进行一些处理,比如保存状态,释放一些资源.c语言开发的linux程序,有可能正常退出(exit),有可能异常crash,而异常crash可能是响应了某信号的默认处理.这里总结一 ...
- list 和 iterate
list 和 iterate 不同之处 a) list取所有: b) iterate 先取ID,等到用到的时候再根据ID来取对象: c) session 中 list 第二次发出,仍会到数据库查询: ...