当前位置:首页 > 正文

oracle如何进行分区_oracle分区语句

更新时间:2025-05-14 13:08 阅读量:58

Oracle创建分区表操作

①.、创建语句

create table p(id number)

partition by range(id)

(partition p1 values less than(100) tablespace t1,

alter table p trunc partition p1;

alter table p drop partition p1;

ORACLE表分区

一.表分区策略

①识别大表

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

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

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

二.创建表分区

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

①范围分区

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

(

? id integer primary key,--销售编号

? retail_date date,--销售日期

)

partition by range(retail_date)

);

三.创建索引分区

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

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

四.分区技术简介

优点:

①减少维护工作量

五,管理表分区

①添加表分区

ALTER TABLE...ALTER PARATITION

ALTER TABLE...DROP PARTITION

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

-创建表和分区

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

? id number primary key,--记录编号

? saledate date--销售日期

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

? --第一季度数据

? --第二季度数据

? --第三季度数据

? --第四季度数据

--创建局部索引

local(

partition part_seal tablespace tbsp_1,

--并入分区

--重建局部索引

六.管理索引分区

删除索引:DROP PARTITION

重建分区:REBUILT PARTITION

更名索引分区:RENAME PARTITION

分割索引分区:SPLIT PARTITION

oracle11g自动分区

在Oracle10g中,没有定义间隔分区,只能通过范围分区实现间隔分区功能,如果要实现自动创建分区,只能通过创建JOB或者scheduler来实现;而在11g中,Oracle直接提供了间隔分区功能,大大简化了间隔分区的实现.

----注:oracle11g虽然可以自动分区,但是分区的名字不能自定义,对于需要定时删除分区时没法处理,不如通过时间范围来手工分区.详见

create table HIP_LOG_NODE_Part

? RECORD_TIME?? DATE

)tablespace TB_HIP_LOG_NODE

PARTITION BY RANGE (RECORD_TIME) interval (numtoyminterval(1, 'month'))

STORE IN (TB_HIP_LOG_NODE)

①.、Oracle11g有间隔分区功能,对于使用Range分区的可以按年,月,日来自动生成分区.

numtodsinterval、numtodsinterval函数,将数字转成年月,时分秒

详见:

非分区字段创建主键,则创建主键local索引时必须加上分区字段

ALTER TABLE TEST ADD CONSTRAINT PK_TEST PRIMARY KEY (主键字段,分区字段) USING INDEX LOCAL;

①不保留,直接删除:

alter table table_name drop/truncate partition partition_name;

具体用drop还是truncate,得你自己衡量,drop的话原来的分区和数据直接就没有了,truncate的话,只是数据没有了,分区还在.

以上就是开立百科网小编为大家整理的oracle如何进行分区相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!