网站首页 > 文章中心 > 其它

oracle中分区怎么做

作者:小编 更新时间:2023-09-06 13:25:22 浏览量:255人看过

oracle根据多字段创建分区表

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

---建表语句

create table t_table

(

oracle中分区怎么做-图1

appdate date,

text varchar(10)

)

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

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

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

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

subpartition sub1 values('101'),

---模拟写入测试数据

--查询数据

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组合分区

range-list方法:

partition by range (updatetime)

interval (numtodsinterval(1,'day'))

subpartition by list(PSNCODE)

SUBPARTITION TEMPLATE(

Interval分区目前测试,只支持range先分区的方式

range-hash方法:每个分区10个子hash分区(可以指定每个子分区到单独的表空间)

interval(numtodsinterval(1,'day'))

subpartition by hash(PSNCODE)

SUBPARTITION template

( SUBPARTITION p1 TABLESPACE ts1

注意:这种方式可以实现完全自动的分区,非常适合自增长特性的10位数以上的大表

range-range方法:子分区需要手动添加,这种分区需要一般比较少见

PARTITION BY RANGE (time_id)

INTERVAL (NUMTODSINTERVAL(1,'DAY'))

SUBPARTITION BY RANGE(amount_sold)

SUBPARTITION TEMPLATE

( SUBPARTITION p_low VALUES LESS THAN (1000)

, SUBPARTITION p_ultimate VALUES LESS THAN (maxvalue)

Oracle分区表怎么建唯

①.、一般分区表都会很大,所以可以先创建表空间,为了让分区表存放到单独的表空间,否则默认会存放到USERS表空间

ID NUMBER(10) NOT NULL,

CREATE_TIME DATE,

TABLESPACE TS1

PARTITION BY LIST (ID)

(PARTITION PT_1001 VALUES (1001) TABLESPACE TS1);

select TABLE_NAME,PARTITION_COUNT,DEF_TABLESPACE_NAME from USER_PART_TABLES order by DEF_TABLESPACE_NAME;

oracle数据库怎么建分区

一般语法:

create?table?t_test?(

add_date_time?DATE,

constraintPK_T_TEST?primary?key?(pk_id)

PARTITION?BY?RANGE?(add_date_time)

);

oracle LIST分区,怎么用

list分区也需要指定列的值,其分区值必须明确指定,该分区列只能有一个,不能像range或者hash分区那样同时指定多个列做为分区依赖列,但它的单个分区对应值可以是多个.

在分区时必须确定分区列可能存在的值,一旦插入的列值不在分区范围内,则插入/更新就会失败,所以呢通常建议使用list分区时,要创建一个default分区存储那些不在指定范围内的记录,类似range分区中的maxvalue分区.

在根据某字段,如城市代码分区时,可以指定default,把非分区规则的数据,全部放到这个default分区.

如:

create

table

custaddr

id

byte)

not

null,

areacode

partition

by

list

(areacode)

values

,

p_other

(default)

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

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章