ORACLEPARTITION简介.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ORACLEPARTITION简介

ORACLE PARTITION简介 二〇一〇年五月 一、Oracle分区简介 ORACLE的分区是一种处理超大型表的技术。分区是一种“分而治之”,通过将大表分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。 二、Oracle分区优缺点 优点 维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可,其他分区的数据仍然可用 均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度 缺点 1、已经存在的表没有方法可以直接转化为分区表。 解决方式:Oracle 提供了在线重定义表的功能,在Oracle9i出现之前,你只能通过导出和导入的方式来进行表格重定义,因此表格重定义的过程是一个离线过程。为了解决这个问题,Oracle9i在其DBMS_REDEFINITION软件包中引入了在线表格重定义功能。有了DBMS_REDEFINITION软件包,你就可以: (1)拷贝表格(用CTAS)。 (2)创建表格的快照(snapshot)。 (3)把重定义表格的过程中所发生的变化进行排队。 (4)并用变化队列来同步重定义后的表格。 2、默认情况下,Oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改。但是可以通过打开表的row movement属性来允许对分区字段的update操作。 打开row movement属性 alter table test_part enable row movement; 这是,再对分区表分区字段进行update操作即可成功。 三、Oracle分区方法 Range分区(范围分区): 范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据序号分区,根据业务记录的创建日期进行分区等。 Hash分区(散列分区): 散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。 List分区(列表分区): 当你需要明确地控制如何将行映射到分区时,就使用列表分区方法。与范围分区和散列分区所不同,列表分区不支持多列分区。如果要将表按列分区,那么分区键就只能由表的一个单独的列组成。 四、Oracle表分区表操作 创建表空间 CREATE TABLESPACE PARTION_01 DATAFILE D:\ORACLE\ORADATA\ORA9\PARTION_01.dbf SIZE 50M; CREATE TABLESPACE PARTION_02 DATAFILE D:\ORACLE\ORADATA\ORA9\PARTION_02.dbf SIZE 50M; CREATE TABLESPACE PARTION_03 DATAFILE D:\ORACLE\ORADATA\ORA9\PARTION_03.dbf SIZE 50M; 删除表空间 drop tablespace partion_01; 范围分区 范例1: create table Partition_RangeTest1( PID number not null, PITEM varchar2(200), PDATA date not null ) partition by range(PID) ( partition part_01 values less than(50000) tablespace partion_01, partition part_02 values less than(100000) tablespace partion_02, partition part_03 values less than(maxvalue) tablespace partion_03 ); 范例2: create table Partition_RangeTest2( PID number not null, PITEM varchar2(200), PDATA date not null ) partition by range(PDATA)( partition part_t01 values less than(to_date(2004-01-01,yyyy

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档