ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle 数据表之分区表

2020-02-21 17:03:27  阅读:252  来源: 互联网

标签:tablespace date 分区 partition 数据表 分区表 values Oracle table


一、分区方法 

  建分区表准备:

  1,创建4个测试用的表空间,每个表空间作为一个独立分区(考虑到Oracle中分区映射的实现方式,建议将表中的分区数设置为2的乘方,以便使数据均匀分布)

        create tablespace partition1 datafile '/home/oracle/app/oradata/orcl/partition1.dbf' size 20m;         create tablespace partition2 datafile '/home/oracle/app/oradata/orcl/partition2.dbf' size 20m;         create tablespace partition3 datafile '/home/oracle/app/oradata/orcl/partition3.dbf' size 20m;         create tablespace partition4 datafile '/home/oracle/app/oradata/orcl/partition4.dbf' size 20m;        1)范围分区      范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据序号分区,根据业务记录的创建日期进行分区等(联通每个月的账单记录就用的分区表存储)。    CREATE TABLE partition_table(     kind_id number ,     id number not null,     name  varchar(100),     start_date date not null )   partition by range(kind_id) (   partition partition1 values less than(2) tablespace partition1,   partition partition2 values less than(4) tablespace partition2,   partition partition3 values less than(6) tablespace partition3,   partition partition4 values less than(maxvalue) tablespace partition4 )   插入数据   insert into partition_table values(1,1001,'haha',to_date('2012','yyyy'));   insert into partition_table values(2,1002,'sasa',to_date('2013','yyyy'));   insert into partition_table values(3,1003,'dada',to_date('2014','yyyy'));   insert into partition_table values(4,1004,'faga', to_date('2015','yyyy'));   insert into partition_table values(5,1005,'gaga',to_date('2016','yyyy'));   insert into partition_table values(6,1006,'jaja1',to_date('2017','yyyy'));   insert into partition_table values(8,1007,'kaka',to_date('2018','yyyy'));   查询数据:      不指定分区:         select * from partition_table         指定分区:         select * from partition_table partition(partition1)   更改数据:      指定分区:         update partition_table partition(partition1) t set t.name = 'kkkl'  where start_date <to_date('2015');      不指定分区         update partition_table t set t.name = 'kkkl'  where t.start_date <to_date('2015');          3)散列分区(hash分区)   create table hash_partition_table(     kind_id number ,     id number not null,     name  varchar(100),     start_date date not null ) partition by hash(kind_id)(   partition partition1 tablespace partition1;   partition partition2 tablespace partition2;   partition partition3 tablespace partition3;   partition partition4 tablespace partition4; )      4)复合分区(子分区)       具体信息见博客:https://www.cnblogs.com/CandiceW/p/10312663.html

标签:tablespace,date,分区,partition,数据表,分区表,values,Oracle,table
来源: https://www.cnblogs.com/fanshaoxiang/p/12257810.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有