oracle如何进行分区_oracle分区语句
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如何进行分区相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!