设为首页 加入收藏

TOP

分区索引小结(二)
2014-11-24 07:52:57 来源: 作者: 【 】 浏览:1
Tags:分区 索引 小结
lues less than (2000) tablespace p1,
partition p2 values less than (maxvalue) tablespace p2
)

ORA-14038: GLOBAL 分区索引必须加上前缀

SQL> create bitmap index i_id_global on test(id) global
2 partition by range(id)
3 ( partition p1 values less than (2000) tablespace p1,
4 partition p2 values less than (maxvalue) tablespace p2
5 );

create bitmap index i_id_global on test(id) global
partition by range(id)
( partition p1 values less than (2000) tablespace p1,
partition p2 values less than (maxvalue) tablespace p2
)

ORA-25113: GLOBAL 可能无法与位图索引一起使用

三:分区索引不能够将其作为整体重建,必须对每个分区重建

SQL> alter index i_id_global rebuild online nologging;

alter index i_id_global rebuild online nologging

ORA-14086: 不能将分区索引作为整体重建

这个时候可以查询dba_ind_partitions,或者user_ind_partitions,找到partition_name,然后对每个分区重建

SQL> select index_name,partition_name from user_ind_partitions where index_name='I_ID_GLOBAL';

INDEX_NAME PARTITION_NAME
------------------------------ ------------------------------
I_ID_GLOBAL P1
I_ID_GLOBAL P2

SQL> alter index i_id_global rebuild partition p1 online nologging;

Index altered

SQL> alter index i_id_global rebuild partition p2 online nologging;

Index altered

四、建立分区索引与普通索引的区别

1、建立普通的索引

create index no_part_idx on p_list(sale_date);

2、建立本地分区索引

create index local_part_idx on p_list(sale_date) local;

3、建立全局分区索引

create index glo_part_idx on p_list(sale_date) global partition by range(sale_date) (

PARTITION p1 VALUES less than ('20121111') TABLESPACE system,

PARTITION p2 VALUES less than ('20121112') TABLESPACE system,

PARTITION pmax VALUES less than (maxvalue) TABLESPACE system );

四、删除索引与索引失效:

对于分区索引的删除,local index 不能指定分区名称,需单独的删除分区索引。 local index 对应的分区会伴随着data分区的删除而一起被删除。globalpartition index 可以指定分区名称,删除某一分区。但是有一点要注意,如果该分区不为空,则会导致更高一级的索引分区被置为UNUSABLE 。

ALTER INDEX gidx_range_exampel_id drop partition part_01 此句将导致part_02 状态为UNUSABLE

本地分区索引的状态改变

--整个索引不可用

ALTER INDEX index_tmp_partition_list UNUSABLE;

--单个分区索引不可用

ALTER INDEX index_tmp_partition_list MODIFY PARTITION p_20110816 USABLE;

--分区不可用之后,需要重建索引

alter index index_tmp_partition_list rebuild partition p_20110816;

--查看分区索引的状态

select index_name,partition_name,tablespace_name,status

fromuser_ind_partitions wherelower(index_name)='index_tmp_partition_list'

参考自:http://blog.csdn.net/robinson1988/article/details/5276924

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Solaris11配置OracleRACASMDisk以.. 下一篇从FusionIO的NVM压缩接口谈起

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中,“指针”用 (2025-12-26 15:20:18)
·在c语言的指针运算中 (2025-12-26 15:20:15)
·C语言-函数指针与函 (2025-12-26 15:20:12)
·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)