- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle表分区详细说明
Oracle表分区自从oracle8i 开始可以把一个表分割为多个小的部分,这样可以对oracle的性能优化带来很大的好处~例如:改善表的查询性能,更加容易管理表数据,备份和恢复操作更方便在oracle 中分区表 分为好几种的(范围分区,散列分区,子分区,列表分区,索引分区)下面我们来慢慢介绍现在我们来建立一个[范围分区]create table RangeTable(id int primary key,name varchar(20),grade int)partition by rang(grade)(partition part1 values less then(50) tablespace Part1_tb,partition part2 values less then(MAXVALUE) tablespace Part2_tb);如果grade的值小于50的话 就把记录放到名为part1的分区当中,part1分区将被存储在Part1_tb表空间中其他的就放在part2中 MAXVALUE是oracle的关键字 表示最大值[散列分区]create table HashTable(id int primary key,name varchar(20),grade int)/*有两种方式,1就是指定分区数目和所使用的表空间,2指定以命名的分区*/partition by hash(grade)partitions 10 -- 指定分区的数目store in(Part1_tb,Part2_tb,Part3_tb) --如果指定的分区数目比表空间多,分区会以循环方式分配到表空间/*------------------------------------*/partition by rang(grade)--这种方式就是 指定以命名的分区(partition part1 tablespace Part1_tb,partition part2 tablespace Part2_tb);[子分区]即是分区的分区create table ChildTable(id int primary key,name varchar(20),grade int)partition by rang(grade)subpartition by hash(grade)partitions 5(partition part1 values less then(30) tablespace Part1_tb,partition part2 values less then(60) tablespace Part2_tb,partition part3 values less then(MAXVALUE) tablespace Part3_tb);[列表分区]告诉oracle所有可能的值create table ListTable(id int primary key,name varchar(20),area varchar(10))partition by list(area)( partition part1 values(guangdong,beijing) tablespace Part1_tb,partition part2 values(shanghai,nanjing) tablespace Part2_tb);[索引分区]索引也可以按照和表进行分区时使用的相同的值范围来分区create index IndexTable_indexon IndexTable(name)local(partition part1 tablespace Part1_tb,partition part2 tablespace Part2_tb)--local 告诉oracle表 IndexTable的每一个分区建立一个独立的索引create index IndexTable_indexon IndexTable(name)global;--global为全局索引 全局索引可以包含多个分区的值 局部索引比全局索引容易管理,而全局索引比较快注意:不能为散列分区 或者 子分区创建全局索引查询某一个表分区select * from table partition(part1); oracle表分区主要是为了容易管理和性能方面考虑,有四种分区方法:1.区间分区:create table range_example(range_column number,sj date)PARTITION BY RANGE(range_column)(PARTITION part_1 VALUE LESS THAN(18),PARTITION part_2 VALUE LE
文档评论(0)