前言:分区是管理巨形表和巨形索引的有效手段,可以提高他们的管理性,可用性,并行性 。
表分区种类:范围分区,列表分区,散列分区,复合分区,间隔分区,引用分区,系统分区,虚拟列分区等。 分区索引:本地分区索引和全局分区索引
在那种情况下需要对表分区呢?
1.表的大小超过2GB 2.对表进行并行DML操作时,必须对表分区 3.有时候为了平衡I/0操作,将表分散存储到不同的表空间中去 4.如果需要将表的一部分设置为只读状态,另一部分设置为读写状态必须对表分区 5.如果需要对表的一部分设置为联机状态,另一部分设置为脱机状态必须对表分区 6.如果表中存在long或long raw类型则不能分区,(一个表只能包含long类型一次) 7.索引表仅支持范围分区和散列分区,不能采用复合分区和列表分区 8.分区列必须是主键列的一个子集 9.如果索引表使用了溢出存储,则溢出数据段将采用索引表相同的分区方法
在那种情况下需要对索引分区呢?
1.为了避免移动数据时重建整个索引,可以对索引进行分区,只需重建与移动数据相关的索引分区 2.为了避免对表的分区进行维护时将整个索引设置为失效状态,可以对索引进行分区,只将与表分区对应的索引分区 设置为失效状态即可,不影响其他部分索引的使用 3.为了避免由于索引值的单调急剧增长导致索引条目的剧增进而影响索引的使用效率,可以将索引进行分区,这样新增的索引 条目可以分散在多个索引分区中 范围分区:根据分区列的值的范围分区,通常根据日期类型分区 。 CREATE TABLE sales (invoice_no NUMBER, ... sale_date DATE NOT NULL )
PARTITION BY RANGE (sale_date)
(PARTITION sales1999_q1 VALUES LESS THAN (TO_DATE(‘1999-04-01’,’YYYY-MM-DD’) TABLESPACE ts_sale1999q1, PARTITION sales1999_q2 VALUES LESS THAN (TO_DATE(‘1999-07-01’,’YYYY-MM-DD’) TABLESPACE ts_sale1999q2, PARTITION sales1999_q3 VALUES LESS THAN (TO_DATE(‘1999-10-01’,’YYYY-MM-DD’) TABLESPACE ts_sale1999q3, PARTITION sales1999_q4 VALUES LESS THAN (TO_DATE(‘2000-01-01’,’YYYY-MM-DD’) TABLESPACE ts_sale1999q4 ) --values less than (maxvalue) enable row movement; --重建销售分区表
列表分区:不能划分范围(非数值类型和日期类型),同时分区列的取值是一个包含多少数值的集合,使用列表分区可以将无序的
,无关联的数据自然分组。
create table sales_by_list( deptno number, detpname varchar(20) )
partition by list(deptname)
(
partition list1 values('北京','上海') tablespace tbs1,
|
摆下分区表是囊个用的
最新推荐文章于 2017-09-14 14:03:16 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)