当前位置:  数据库>oracle

Oracle 11g维护分区概述

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

    本文导语: 本章节介绍了如何为Oracle表和索引进行分区和子分区的维护操作。 本章节包含以下主题: 在分区上可以执行的维护操作 自动更新索引 添加分区 合并分区 删除分区 交换分区 合并分区 修改默认属性 修改分区的当前属性 修改列...

本章节介绍了如何为Oracle表和索引进行分区和子分区的维护操作。

本章节包含以下主题:

  • 在分区上可以执行的维护操作
  • 自动更新索引
  • 添加分区
  • 合并分区
  • 删除分区
  • 交换分区
  • 合并分区
  • 修改默认属性
  • 修改分区的当前属性
  • 修改列表分区:增加值
  • 修改列表分区:删除值
  • 修改子分区模板
  • 移动分区
  • 在线重定义分区
  • 重建索引分区
  • 重命名分区
  • 分割分区
  • 截断分区

注意:

以下各节讨论分区表的维护操作,这些维护操作会影响到索引或索引分区的可用性,考虑以下几点:

  • 只有非空的索引和索引分区才可能被标识为UNUSABLE。如果他们是空的,USABLE/UNUSABLE状态保持不变。
  • 只有状态为可用(USABLE)的索引或索引分区可以被后续的DML更新。
在分区上可以执行的维护操作

表4-1列出了可以对分区表和复合分区表进行的维护操作,表4-2列出子分区维护操作可以对分区表进行复合。对于每种类型的分区和分区,都列出了维护操作中用到的ALTER TABLE语句的具体子句。

表4-1分区表的ALTER TABLE维护操作

维护操作

范围复合

Range-*

间隔复合

Interval-*

哈希

列表复合

List-*

引用

添加分区

ADD PARTITION

ADD PARTITION

ADD PARTITION

ADD PARTITION

N/A

合并分区

N/A

N/A

COALESCE PARTITION

N/A

N/A

删除分区

DROP PARTITION

DROP PARTITION

N/A

DROP PARTITION

N/A

交换分区

EXCHANGE PARTITION

EXCHANGE PARTITION

EXCHANGE PARTITION

EXCHANGE PARTITION

EXCHANGE PARTITION

合并分区

MERGE PARTITIONS

MERGE PARTITIONS

N/A

MERGE PARTITIONS

N/A

修改默认属性

MODIFY DEFAULT ATTRIBUTES

MODIFY DEFAULT ATTRIBUTES

MODIFY DEFAULT ATTRIBUTES

MODIFY DEFAULT ATTRIBUTES

MODIFY DEFAULT ATTRIBUTES

修改分区的当前属性

MODIFY PARTITION

MODIFY PARTITION

MODIFY PARTITION

MODIFY PARTITION

MODIFY PARTITION

修改列表分区:增加值

N/A

N/A

N/A

MODIFY PARTITION ... ADD VALUES

N/A

修改列表分区:删除值

N/A

N/A

N/A

MODIFY PARTITION ... DROP VALUES

N/A

移动分区

MOVE SUBPARTITION

MOVE SUBPARTITION

MOVE PARTITION

MOVE SUBPARTITION

MOVE PARTITION

重命名分区

RENAME PARTITION

RENAME PARTITION

RENAME PARTITION

RENAME PARTITION

RENAME PARTITION

分割分区

SPLIT PARTITION

SPLIT PARTITION

N/A

SPLIT PARTITION

N/A

截断分区

TRUNCATE PARTITION

TRUNCATE PARTITION

TRUNCATE PARTITION

TRUNCATE PARTITION

TRUNCATE PARTITION

表4-2子分区表的ALTER TABLE维护操作

维护操作

复合

*-Range

复合

*-Hash

复合

*-List

添加分区

MODIFY PARTITION ... ADD SUBPARTITION

MODIFY PARTITION ... ADD SUBPARTITION

MODIFY PARTITION ... ADD SUBPARTITION

合并分区

N/A

MODIFY PARTITION ... COALESCE SUBPARTITION

N/A

删除分区

DROP SUBPARTITION

N/A

DROP SUBPARTITION

交换分区

EXCHANGE SUBPARTITION

N/A

EXCHANGE SUBPARTITION

合并分区

MERGE SUBPARTITIONS

N/A

MERGE SUBPARTITIONS

修改默认属性

MODIFY DEFAULT ATTRIBUTES FOR PARTITION

MODIFY DEFAULT ATTRIBUTES FOR PARTITION

MODIFY DEFAULT ATTRIBUTES FOR PARTITION

修改分区的当前属性

MODIFY SUBPARTITION

MODIFY SUBPARTITION

MODIFY SUBPARTITION

修改列表分区:增加值

N/A

N/A

MODIFY SUBPARTITION ... ADD VALUES

修改列表分区:删除值

N/A

N/A

MODIFY SUBPARTITION ... DROP VALUES

修改子分区模板

SET SUBPARTITION TEMPLATE

SET SUBPARTITION TEMPLATE

SET SUBPARTITION TEMPLATE

移动分区

MOVE SUBPARTITION

MOVE SUBPARTITION

MOVE SUBPARTITION

重命名分区

RENAME SUBPARTITION

RENAME SUBPARTITION

RENAME SUBPARTITION

分割分区

SPLIT SUBPARTITION

N/A

SPLIT SUBPARTITION

截断分区

TRUNCATE SUBPARTITION

TRUNCATE SUBPARTITION

TRUNCATE SUBPARTITION

注意:

当您第一次使用表压缩,将压缩分区引入一个包含位图索引并且只包含未压缩分区的分区表,你必须做到以下几点:

  • 删除所有现存的位图索引和位图分区索引,或者将它们标识为UNUSABLE;
  • 设置表压缩属性
  • 重建索引

分区是否包含数据,和引入压缩分区的操作是相互独立的。

另外,这并不适用于包含B-tree索引的分区表以及分区索引组织表。

表4-3列出了可以对索引分区进行的维护操作,并指出可以操作的索引类型(全局或局部)。而且,还列出了用于维护操作的ALTER INDEX子句。

全局索引并不反映基表的结构。如果分区,它们可通过范围或散列进行分区。全局分区索引可以共享在分区表上的部分操作,而不是全部。

由于本地索引反映了基表的结构,在对分区或者子分区进行维护操作时,索引分区会自动被维护。因此,维护本地索引分区的必要性大打折扣,并且相应的选项也很少。

表4-3 索引分区的ALTER INDEX维护操作

维护操作

索引类型

索引分区类型

范围

哈希和列表

复合

添加索引分区

Global

-

ADD PARTITION (hash only)

-

 

Local

N/A

N/A

N/A

删除索引分区

Global

DROP PARTITION

-

-

 

Local

N/A

N/A

N/A

修改索引分区的默认属性

Global

MODIFY DEFAULT ATTRIBUTES

-

-

 

Local

MODIFY DEFAULT ATTRIBUTES

MODIFY DEFAULT ATTRIBUTES

MODIFY DEFAULT ATTRIBUTES

MODIFY DEFAULT ATTRIBUTES FOR PARTITION

修改索引分区的当前属性

Global

MODIFY PARTITION

-

-

 

Local

MODIFY PARTITION

MODIFY PARTITION

MODIFY PARTITION

MODIFY SUBPARTITION

重建索引分区

Global

REBUILD PARTITION

-

-

 

Local

REBUILD PARTITION

REBUILD PARTITION

REBUILD SUBPARTITION

重命名索引分区

Global

RENAME PARTITION

-

-

 

Local

RENAME PARTITION

RENAME PARTITION

RENAME PARTITION

RENAME SUBPARTITION

分割索引分区

Global

SPLIT PARTITION

-

-

 

Local

N/A

N/A

N/A

自动更新索引

在讨论针对分区表和索引的各个维护操作之前,讨论一下可以在ALTER TABLE语句中指定的UPDATE INDEXES子句的影响,是十分重要的。

默认情况下,分区表上的很多维护操作都会使相关的索引或索引分区无效(标识为)UNUSABLE。你必须重建整个索引,或者对于一个全局索引,或者对于每一个分区索引。如果你在ALTER TABLE语句中指定了UPDATE INDEXES子句,数据库会默认这行这些操作。指定UPDATE INDEXES子句会告诉数据库当执行DDL维护操作时的同时去更新索引。这提供了以下优点:

  • 索引更新与基表操作时同步的,不需要你以后手动更新和单独重建索引
  • 全局索引的高可用性,因为他们没有被标识为UNUSABLE,当执行分区表的DDL操作时,这些索引仍是可用的,并且你可以访问那些不受影响的分区表。
  • 你不必查找所有无效索引的名字来重建他们。

在更新本地索引及其分区时,你可以通过可选子句来指定物理和存储特性。

你可以为每个本地索引的每个分区指定物理特性、表空间存储以及日志特性。或者,你可以只指定PARTITION关键字,让数据库按照以下原则来更新分区特性:

  • 对于单个表分区操作(如移动分区和分割分区),相应的索引分区继承了受影响的索引分区的特性。数据库不会生成新的索引分区名称,所以这个操作生成的新的索引分区以及相应的新的表分区都会继承他们原来的名字。
  • 对于合并分区操作,新生成的本地分区索引从新生成的表分区那里继承名称,并且从本地索引中继承其特性。
  • 对于复合分区索引,你可以为每个子分区指定表空间存储特性。

以下子句可以指定UPDATE INDEXES子句:

  •  ADD PARTITION | SUBPARTITION
  •  COALESCE PARTITION | SUBPARTITION
  •  DROP PARTITION | SUBPARTITION
  •  EXCHANGE PARTITION | SUBPARTITION
  •  MERGE PARTITION | SUBPARTITION
  •  MOVE PARTITION | SUBPARTITION
  •  SPLIT PARTITION | SUBPARTITION
  •  TRUNCATE PARTITION | SUBPARTITION
SKIP_UNUSABLE_INDEXES初始化参数

SKIP_UNUSABLE_INDEXES是默认设置为TRUE的初始化参数。当索引或者索引分区被标识为UNUSABLE时,该设置禁止由此产生的错误报告。如果你不希望数据库选择其他的执行计划,以避免无法使用的索引,那么你应该将此参数设置为FALSE。

自动更新索引的注意事项

当指定UPDATE INDEXES子句时,需要注意以下事项:

分区DDL语句需要更长的时间来执行,因为先前标记为UNUSABLE的索引需要进行更新。尽管如此,你必须比较它与与执行DDL操作然后重新生成所有索引的时间。一个经验法则是,如果该分区的大小小于该表大小的5%,自动更新索引还是相对较快的。

删除、阶段和交换操作不再是快速操作,同样的,你需要比较一下二者的时间。

当你更新包含全局索引的表时:

索引被更新,同时更新操作生成日志记录,并产生redo和undo日志。相反,如果你重建整个全局索引,你可以在NOLOGGING模式下进行操作。

手动重建整个索引将会生成一个更有效的索引,因为它更紧凑,提高空间利用率。

索引组织表不支持UPDATE INDEXES子句。但是,为了保持索引组织表的全局索引的可用性,在执行删除分区、截断分区和交换分区操作时,需要指定UPDATE GLOBAL INDEXES子句。对于上述列表中的其余操作,索引组织表的全局索引保持可用。此外,索引组织表的本地索引分区在执行MOVE PARTITION操作之后仍然可用。


    
 
 

您可能感兴趣的文章:

  • 请教安装oracle9i的分区建议,硬盘只有10-15G
  • Oracle数据库中分区功能详解
  • Oracle移动数据文件到新分区步骤分析
  • Oracle 数据表分区的策略
  • Oracle 间隔分区
  • ORACLE 分区表的设计
  • 深入oracle分区索引的详解
  • Oracle学习:分区表和索引
  • Oracle使用hash分区优化分析函数查询
  • 使用Oracle Partition Table对日志表进行分区
  • ORACLE8的分区管理
  • oracle表空间表分区详解及oracle表分区查询使用方法
  • oracle分区表之hash分区表的使用及扩展
  • Oracle数据表分区的策略
  • oracle存储过程创建表分区实例
  • 在Oracle中手工对任务进行分区的方法
  • Oracle物理结构概述
  • Oracle Form中COMMIT的概述及使用技巧
  • ORACLE的五种表的优缺点概述
  • Oracle 11g自动诊断信息库(Automatic Diagnostic Repository,ADR)概述
  • oracle存储过程中return和exit区别概述及测试
  • Oracle Portal及其门户网站开发概述
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有做linux+oracle的维护的麽?
  • ■帮一个朋友维护网站,oracle运行半小时就自动锁死,用top发现是其狂吃内存,直到吃完为止。怎么办啊
  • Oracle密码文件的使用和维护第1/3页
  • Oracle数据库密码文件的使用与维护
  • 如何用不算很熟练的jsp,oracle,javascript,html,css等建设动态网站,要网页打开速度快、易于日常维护更新?
  • Oracle数据库密码文件的使用和维护
  • Oracle DBA数据库日常维护完全手册
  • Oracle管理与维护.配置文件的简要分析
  • 使用Linux的Shell脚本维护Oracle
  • DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)
  • Oracle数据库密码文件的使用和维护
  • Oracle数据库密码文件的使用与维护
  • Oracle数据库索引的维护
  • 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监听的启动


  • 站内导航:


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

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

    浙ICP备11055608号-3