Oracle笔记-分区

王朝oracle·作者佚名  2006-11-24
宽屏版  字体: |||超大  

第 14 章 分区

14.1 分区的使用

增加可用性

减轻维护负担

提高DML与查询的性能

14.2 分区如何工作

表分区策略

索引分区

本地索引

分为本地前缀索引(Local Prefixed Index)、本地非前缀索引(Local Non-prefixed Index)

1. 索引的选择

在单表查询中,本地非前缀索引可能增加可用性,也更加实用。例如表T(a, b)按a区间分区,若在b上建立本地索引,则当某个分区离线,仅查询b的某个值时,该索引可用,而索引(a, b)不可用;删除索引(a, b),查询(a, b)的某对值,b上的索引仍可用。此时若建立索引(b, a),则可应对各类查询。

在多表关联(如上例中按照(a, b)值关联)时,系统将发现代价较高而不会用到本地非前缀索引(如上例中(b, a))。

因此建立本地索引时应当考虑通常的使用环境。

2. 无法基于本地非前缀索引建立唯一键或主键。

全局索引

仅有一种,即全局前缀索引

1. 数据仓库环境

在(与建立好相应索引的表)交换分区与索引或分割分区后,全局索引将失效而必须重建,因此全局索引并不适合数据仓库。

例如:

ALTER TABLE partitioned

EXCHANGE PARTITION fy_1999

WITH TABLE fy_1999

INCLUDING INDEXES

WITHOUT VALIDATION;

ALTER TABLE partitioned

SPLIT PARTITION the_rest

AT (TO_DATE(‘200101’, ‘yyyymm’))

INTO (PARTITION fy_2000, PARTITION the_rest);

2. OLTP环境

一定程度上增加了可用性。当某些分区离线,不含有用于分区的列且合乎查询条件的数据存在于在线分区的索引仍然是可用的,对于不需要查询全表而是通过索引即可得到结果的查询也是有效的(例如COUNT非用于分区的列等)。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有