oracle分区

1.分区方法

范围、哈希、列表(枚举)及组合

哈希分区数量最好为2的幂,否则会数据不均匀


2.分区索引分类

表分区后可以建本地索引和全局索引两种。

  • 本地索引必然是分区索引,它和表的分区对应。本地索引又分为本地前缀和本地非前缀。本地索引oracle会自动维护

                本地前缀索引的索引字段和表的分区字段一致(对于组合索引待确定),所以表分区的数据和对应的索引分区的数据一一对应

                本地非前缀所以虽然索引分区和表分区对应,但只对索引字段查询时,会使用所有索引分区。所以单独使用效率不如全局索引,但本地索引会自动维护,是否建本地非前缀索引取决于查询多还是分区整理维护重要。若结合索引字段和表分区字段查询,等同于本地前缀索引,因为oracle知道只需使用一个索引分区(where条件是=)

  • 全局索引分为普通索引和全局分区索引。全局索引需要手工维护,调整表分区会使全局索引失效

                 全局普通索引即一个大的索引树(B*时)

                 全局分区索引是把本来一个大的索引树分成多个分区,以减少索引高度,提供查询效率。

 

  

 


3.分区交换方法

alter table his exchange partition p_2011 with table t_2011; ---表结构要相同。可实现表分区与其他表物理交换(修改段地址,不动数据)

 

 

4.创建表分区

create table USER
(
  id            NUMBER(20) not null, 
  phone      VARCHAR2(20),

...

  imsi          VARCHAR2(36)
)
tablespace tsdata

PARTITION BY hash(phone) partitions 8;

 

5.创建索引分区

create index IDX_USER_PHONE on USER (PHONE)  local tablespace tsidx parallel 7;

create index IDX_USER_IMSI on USER (IMSI) global PARTITION BY hash(IMSI) partitions 8   tablespace tsidx  parallel 7;(不知为何,这个建成后PL/SQL显示为local索引)

create unique index PK_USER_ID on USER (ID desc)  tablespace tsidx parallel 7 ;

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值