当前位置:  数据库>oracle

Oracle中add&split partition对global&local index的影响

    来源: 互联网  发布时间:2017-06-16

    本文导语: 生产库中某些大表的分区异常,需要对现有表进行在线操作,以添加丢失分区,因为是生产库,还是谨慎点好,今天有空,针对add&split分区对global&local索引的影响进行了测试,测试版本为Oracle11.2.0.4,过程如下: 首先,创建分区...

生产库中某些大表的分区异常,需要对现有表进行在线操作,以添加丢失分区,因为是生产库,还是谨慎点好,今天有空,针对add&split分区对global&local索引的影响进行了测试,测试版本为Oracle11.2.0.4,过程如下:

首先,创建分区表:

CREATE TABLE TP1
(
C1 INT PRIMARY KEY,
C2 VARCHAR2(10),
C3 CHAR(10)
)                     
partition by range (c1)
(
partition p1 values less than(6),
partition p2 values less than(11),
partition p3 values less than(16),
partition maxvalue values less than(maxvalue));
但在add partition时遇到了问题,报错如下:

ORA-14074: 分区界限必须调整为高于最后一个分区界限


根本原因是存在最后maxvalue分区,于是,再创建一个不带maxvalue的分区表:

CREATE TABLE TP2
(
C1 INT PRIMARY KEY,
C2 VARCHAR2(10),
C3 CHAR(10)
)                     
partition by range (c1)
(
partition p1 values less than(6),
partition p2 values less than(11),
partition p3 values less than(16));


然后,创建local索引:

create index idx_tp2_c2 on tp2(c2) local;

因为主键就是个global索引,所以,不需要另外创建global index,我们insert数据:

insert into tp2 vlaues(1,'aaa','aaa');

insert into tp2 vlaues(2,'aaa','aaa');


insert into tp2 vlaues(3,'aaa','aaa');

insert into tp2 vlaues(4,'aaa','aaa');


insert into tp2 vlaues(5,'aaa','aaa');
insert into tp2 vlaues(6,'aaa','aaa');

insert into tp2 vlaues(7,'aaa','aaa');

insert into tp2 vlaues(8,'aaa','aaa');


insert into tp2 vlaues(9,'aaa','aaa');

insert into tp2 vlaues(10,'aaa','aaa');

commit;

我们add partition:

 ALTER TABLE tp2 add PARTITION p10 values less than(51);

add partition成功,因为不存在maxvalue分区,而且,add partition对global和local索引均无影响;


那么,split partition:

ALTER TABLE tp2 SPLIT PARTITION p2 AT (8) INTO (PARTITION p2, PARTITION p22) ;


发现split分区会导致golbal索引失效,而local索引正常,为split分区命令添加update indexes选项后,再split分区对global&local索引均无影响:

ALTER TABLE tp2 SPLIT PARTITION p1 AT (3) INTO (PARTITION p1, PARTITION p11) update indexes;

以上为测试结果,记录于此,以便今后其他同学和自己参考。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 认识Oracle数据库System Global Area (SGA)
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3