频道栏目
首页 > 资讯 > Oracle > 正文

Oracle表分区实例讲解

17-11-27        来源:[db:作者]  
收藏   我要投稿

一、概述

当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。

二、类型

1、范围分区

根据列的数值范围进行分区,最常见的是根据日期分区。

create table STUDENT(
 id  varchar2(20),
 name varchar2(20),
 birthday date,
 type varchar2(20)
)
partition by range(birthday)
(
   partition  S80 values less than (to_date('1990-01-01','yyyy-mm-dd')) TABLESPACE SP_01,
   partition  S90 values less than (to_date('2000-01-01','yyyy-mm-dd')) TABLESPACE SP_02
)

2、列表分区

根据列的具体值来分区,适用于列值固定的数据,如类型,部门。

create table STUDENT(
 id  varchar2(20),
 name varchar2(20),
 birthday date,
 type varchar2(20)
)
partition by list(type)
(
   partition  full_time values ('fullTime') TABLESPACE SP_01,
   partition  part_time values ('partTime') TABLESPACE SP_02
)

3、散列分区

这类分区是在列值上使用散列算法,以确定将行放入哪个分区中。当列的值没有合适的条件时,建议使用散列分区。散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。

CREATE TABLE HASH_TABLE
(
  COL NUMBER(8),
  INF VARCHAR2(100)
)
PARTITION BY HASH (COL)
(
  PARTITION PART01 TABLESPACE HASH_TS01,
  PARTITION PART02 TABLESPACE HASH_TS02,
  PARTITION PART03 TABLESPACE HASH_TS03
)

4、组合分区

以上分区类型的组合

三、操作

1、查询特定分区里的数据

select * from track_list partition(M201801)

2、查看分区情况

select * from USER_TAB_PARTITIONS 

3、新增分区

alter table graderecord add partition S_01

4、删除分区

alter table table_name drop partition S_4

5、合并分区

ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO PARTITION P2

6、拆分分区

alter table graderecord split partition P_01 at(75) into(partition P_02,partition P_03)
相关TAG标签
上一篇:VueMVVM双向数据绑定代码实例
下一篇:Android媒体播放功能曝出安全漏洞,或将导致攻击者可记录音频或屏幕
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站