oracle怎么建立分区,oracle 建立分区表

ORACLE表分区

一.表分区策略

成都创新互联是一家专注于成都网站设计、网站制作与策划设计,六安网站建设哪家好?成都创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:六安等地区。六安做网站价格咨询:18980820575

1.识别大表

采用ANALYZE TABLE语句进行分析,然后查询数据字典获得相应的数据量。

2.大表如何分区

可根据月份,季度以及年份等进行分区;

3.分区的表空间规划

要对每个表空间的大小进行估计

二.创建表分区

a.创建范围分区的关键字是'RANGE'

1.范围分区

create table ware_retail_part --创建一个描述商品零售的数据表

(

id integer primary key,--销售编号

retail_date date,--销售日期

ware_name varchar2(50)--商品名称

)

partition by range(retail_date)

(

--2011年第一个季度为part_01分区

partition par_01 values less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace TEMP01,

--2011年第二个季度为part_02分区

partition par_02 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace TEMP01,

--2011年第三个季度为part_03分区

partition par_03 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace TEMP01,

--2011年第四个季度为part_04分区

partition par_04 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace TEMP01

);

2.创建散列分区

3.组合分区:

4.interval 分区

三.创建索引分区

索引分区分为本地索引分区和全局索引分区,全局索引不反应基础表的结构,要分区只能进行范围分区。

创建索引分区要参照表分区

四.分区技术简介

优点:

1.减少维护工作量

2.增强数据的可用性

3.均衡I/O,提升性能

4.提高查询速度

5.分区对用户保持透明,用户感觉不到分区的存在。

五,管理表分区

1.添加表分区

ALTER TABLE...ALTER PARATITION

2.合并表分区

3.删除分区

ALTER TABLE...DROP PARTITION

删除分区时,里面的数据也会被删除。

-创建表和分区

create table sales--创建一个销售记录表

(

id number primary key,--记录编号

goodsname varchar2(10),--商品名

saledate date--销售日期

)

partition by range(saledate)--按照日期分区

(

--第一季度数据

partition part_sea1 values less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace tbsp_1,

--第二季度数据

partition part_sea2 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace tbsp_2,

--第三季度数据

partition part_sea3 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace tbsp_1,

--第四季度数据

partition part_sea4 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace tbsp_2

);

--创建局部索引

create index index_3_4 on sales(saledate)

local(

partition part_seal tablespace tbsp_1,

partition part_sea2 tablespace tbsp_2,

partition part_sea3 tablespace tbsp_1,

partition part_sea4 tablespace tbsp_2

);

--并入分区

alter table sales merge partitions part_sea3,part_sea4 into partition part_sea4;

--重建局部索引

alter table sales modify partition part_sea4 rebuild unusable local indexes;

六.管理索引分区

删除索引:DROP PARTITION

重建分区:REBUILT PARTITION

更名索引分区:RENAME PARTITION

分割索引分区:SPLIT PARTITION

oracle如何按照mod建分区

根据数据表字段值的范围进行分区。

创建完分区表后向表中添加一些数据,declarenamevarchar2(10)。fractionnumber(5)。gradenumber(5)。inumber(8):=1。begin。foriin1。100000LOOP。当我们的查询语句不指定分区的时候,如果分区字段出现在where条件之后,Oracle会自动根据字段值的范围扫描响应的分区。

oracle根据多字段创建分区表

最近有业务场景需要用多个字段做分区表,数据量比较大,保存时间也较长,经过学习与实践,算是基本完成,以下内容为实践样例:

---建表语句

create table t_table

(

areacode varchar2(10),

appdate date,

text varchar(10)

)

partition by range(appdate)--根据字段 appdate 创建主分区

interval(numtoyminterval(1,'MONTH')) --主分区按 月 自动创建分区

subpartition by list(areacode) --再按 地区 创建子分区

subpartition template( --指定明确的子分区信息

subpartition sub1 values('101'),

subpartition sub2 values('201'),

subpartition sub3 values('301')

)

(

partition mainpartition1 values less than(to_date('2019-04-01','yyyy-mm-dd'))--2019年4月1日前的放入mainpartition1分区,之后的自动分区

)

---模拟写入测试数据

insert into t_table values('101',to_date('2019-03-03','yyyy-mm-dd'),'a');

insert into t_table values('101',to_date('2019-02-03','yyyy-mm-dd'),'a');

insert into t_table values('101',to_date('2019-04-03','yyyy-mm-dd'),'a');

insert into t_table values('201',to_date('2019-03-03','yyyy-mm-dd'),'a');

insert into t_table values('201',to_date('2019-05-03','yyyy-mm-dd'),'a');

insert into t_table values('301',to_date('2019-04-01','yyyy-mm-dd'),'a');

--查询数据

select * from t_table;

--查询主分区数据

select *from t_table partition (mainpartition1);

--查询子分区数据

select *from t_table subpartition (mainpartition1_sub1);

--查看自动创建的主分区

select * from user_tab_partitions where table_name='T_TABLE'


网站栏目:oracle怎么建立分区,oracle 建立分区表
网站链接:http://scyanting.com/article/hescdp.html