[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对于分区表方式其实就是将表分段存储, ...
随机推荐
- 关于supersocker的数据传输中遇到的问题
最近在学socket,在使用socket时数据的传输与接口都是byte,所以文本与文件的传输只要对传过来的byte处理好就可以. 但是在supersocket上,我却花费了很长的时间.原因如下: 1. ...
- LINQ和.NET数据访问
.NET数据访问 在.NET中对于数据的访问大致有三个层面,数据访问层.内存数据集.业务逻辑层.数据层,包括了XML配置文件以及一些常用的数据库(使用SQL语句):内存数据集,主要是DataSet数据 ...
- Session&Cookie 简介及使用
Cookie cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 或其它语言来创建和取回 cookie ...
- 归并排序——Java实现
一.排序思想 将两个或两个以上的一排序文件合并成一个有序文件的过程叫归并,而归并排序就是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用.将以有序的了序列合并,得到完全有序 ...
- C# 用tabcontrol实现窗体类似网页排版的显示
这里做的比较简陋,可以美化下 把form设置为非顶级控件,直接放在tabcontrol里边,然后实现tabcontrol的拖拽移除tabpage显示form以及添加tabpage mousemove的 ...
- 《CSS实现单行、多行文本溢出显示省略号》
如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方式: overflow: hidden; te ...
- 针对 IE的 的优化
针对 IE 的优化 有些时候,你需要对 IE 浏览器的 bug 定义一些特别的规则,这里有太多的 CSS 技巧(hacks),我只使用其中的两种方法,不 管微软在即将发布的 IE7 beta 版里是否 ...
- esri GDB API
抽空研究了下API,目前1.4版本,还不错. 记录下 DatasetRelationshipTypes类型 - DatasetRelationshipTypes {string[18]} string ...
- Oracle 查看表占用的空间大小
select TABLE_NAME , num_rows * avg_row_len /1024/1024 AS KJfrom ALL_tables WHERE TABLE_NAME IN (sele ...
- wxPython控件学习之wx.grid.Grid 表格控件
wxPython控件学习之wx.grid.Grid (包括对GridCellEditor和GridCelRender的扩展,以支持更多的grid cell 样式, 以GridCellColorEdit ...