oracle怎么做表分区吗,怎么对Oracle中的表进行分区 -电脑资料

表空间是指磁盘上的一块存储区域,用来存放表,

使用范围分区法对数据量大的表进行分区,分区存放到不同的表空间。

范围分区就是用表中的某个字段值的范围进行分区。

比如:

1)用数值型的id字段,id<100000的在第1个分区,100000<=id<200000的在第二个分区。

2)用日期类型的字段,2011年的数据在一个分区,2012年的数据在另一个分区,或者也可以按月份进行划分。

范围分区语法:

1)partition by range(field)   field 就是表中要划分范围的那个字段。

2)VALUES LESS THAN(value)   value 就是field的值,表示小于这个值的。

如VALUES LESS THAN(1000) 就表示属性值小于1000,不包括1000

如VALUES LESS THAN (TO_DATE('2012/2/1','yyyy/MM/dd')) 就表示属性值小于2012年2月1日的,不包括2012年2月1日

3)在最高的分区中,VALUES LESS THAN(maxValue)定义的是一个最大的值

范围分区步骤:

1)建立表空间

建立三个表空间测试用

CREATE TABLESPACE APP_TS_01 --建立第一个表空间 APP_TS_01

NOLOGGING --不生成日志

DATAFILE '/home/oracle/oradata/appdata/app_data_01.def' --指定表空间在磁盘上的位置

SIZE 1024M --指定表空间大小

CREATE TABLESPACE APP_TS_02 --建立第二个表空间 APP_TS_02

NOLOGGING --不生成日志

DATAFILE '/home/oracle/oradata/appdata/app_data_02.def' --指定表空间在磁盘上的位置

SIZE 1024M --指定表空间大小

CREATE TABLESPACE APP_TS_03 --建立第三个表空间 APP_TS_03

NOLOGGING --不生成日志

DATAFILE '/home/oracle/oradata/appdata/app_data_03.def' --指定表空间在磁盘上的位置

SIZE 1024M --指定表空间大小

2)建立表和对表进行分区

--创建订单表

create table t_order

(

id NUMBER primary key not null , --主键

order_no VARCHAR2(30) not null, --订单号

order_time DATE not null --订单时间

)

--对订单表进行分区

partition by range (order_time)--根据订单时间范围进行划分

(

--小于2012年1月份的数据存放到分区t_order_01,存在表空间APP_TS_01

PARTITION t_order_01 VALUES LESS THAN (TO_DATE('2012/2/1','yyyy/MM/dd')) TABLESPACE APP_TS_01,

--2012年2月份的数据存放到分区t_order_01,存在表空间APP_TS_01

PARTITION t_order_02 VALUES LESS THAN (TO_DATE('2012/3/1','yyyy/MM/dd')) TABLESPACE APP_TS_02,

--2012年3月份的数据存放到分区t_order_01,存在表空间APP_TS_01

PARTITION t_order_02 VALUES LESS THAN (TO_DATE('2012/4/1','yyyy/MM/dd')) TABLESPACE APP_TS_03

)

4)查询分区数据

--查询所有分区数据

select * from t_order

--只查t_order_01分区的订单数据

select * from t_order PARTITION(t_order_01)

--联合查询t_order_01分区和t_order_02分区的数据

select * from t_order PARTITION(t_order_01)

UNION ALL

select * from t_order PARTITION(t_order_02)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值